我正在建立一个需要配置文件系统的网站。
目前我进行了设置,因此您转到/profile/namehere
,配置文件将动态显示信息,但您必须手动复制粘贴这些配置文件并更改名称才能使用。
我想要它,以便在这种情况下提交表单时输入名称并按提交,将它们添加到我已经完成的数据库中,并自动生成配置文件。
我已经对此进行了一些研究并得出了这样一个事实:我需要制作一个控制器或配置文件模板来调用信息,但我已经完成了这个,这只是我不确定而且找不到任何有关如何使用 /profile/namehere/
非常感谢任何帮助或代码示例,非常感谢!
我正在使用的数据库是MYSQL,虽然我将转向PDO,但是现在的配置文件可以在MYSQL中。我当前的页面代码如下所示:
标题和元标记通过配置文件/ api显示。
对于从数据库中选择的内容,我会使用$row['var'];
和select
语句来访问数据库。
在当前状态下,复制并粘贴配置文件,其名称已更改为用户名,即完成的配置文件,我希望如此,当您提交表单以使用户命名时,它将自动创建可访问的配置文件在/profile/namehere/
,而不是手动创建。
基本上, - 提交表格 - 用户访问/个人资料/名称 - 抓取模板并动态地从数据库调用信息。 *
答案 0 :(得分:1)
你的问题有点宽泛。所以我会尽可能地回答。
要访问/profile/user
,您必须使用网址重写。您必须启用Apache的mod_rewrite
(如果它是您的网络服务器)。然后,您必须在.htaccess
文件中定义规则。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^profile/(\w+)$ profile.php?user=$1
</IfModule>
因此,浏览到http://host/profile/namehere
将使用profile.php
,$_GET['user']
将使用"namehere"
进行定义。
在profile/namehere
页面显示信息(profile.php
未经测试):
<?php
if (!isset($_GET['user']))
{
// Error: Fall in error 404, or display error, or ...
header("HTTP/1.1 404 Not Found");
exit(0);
}
$username = $_GET['user'];
// connect database using PDO
$pdo = new PDO('mysql:dbname=DBNAME;host=localhost' , 'DBUSER', 'DBPASS') ;
$sth = $pdo->prepare("select * from profile_table where username=:username") ;
if (!$sth) { /* Error */ die ; }
$sth->execute([':username' => $username]) ;
$result = $sth->fetch(PDO::FETCH_OBJ) ;
if (!$result) { /* Error */ die ; }
// display informations using template
header("Content-Type: text/html; charset=utf-8") ;
include("template.php") ;
exit();
模板示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $result->name ?></title>
</head>
<body>
<p><?php echo $result->info1 ?></p>
<p><?php echo $result->info2 ?></p>
<p><?php echo $result->info3 ?></p>
</body>
</html>