PHP 使用 /profile/name 模板的配置文件
PHP Profiles using template of /profile/name
我正在制作一个需要配置文件系统的网站。
目前我已经设置好了,所以你去 /profile/namehere
并且配置文件将动态显示信息,但当然你必须手动复制粘贴这些配置文件并更改名称才能工作。
我想要它,以便在这种情况下提交表单时输入名称并按提交,它们将被添加到我自己已经完成的数据库中,并且会自动创建配置文件。
我对此进行了一些研究,发现我需要制作一个控制器或配置文件模板来调用信息,但我已经这样做了,只是我不确定并且无法在线找到任何关于如何使用 /profile/namehere/
进行操作的文档
非常感谢任何帮助或代码示例,非常感谢!
我正在使用的数据库是MYSQL,虽然我会在使用它时迁移到 PDO,但是现在的配置文件可以在 MYSQL 中。我当前的页面代码如下所示:
标题和元标记通过配置文件显示/api。
对于从数据库中选择的内容回显页面内容我正在使用 $row['var'];
和 select
语句来访问数据库。
在当前状态下,复制并粘贴了一个配置文件,并将名称更改为用户名,这就是完成的配置文件,我想要它,所以当您提交表单以创建用户名时,它会自动创建配置文件,可以在 /profile/namehere/
访问,而不是手动创建。
结论
本质上,
- 提交表格
- 用户访问 /profile/name
- 抓取模板并从数据库中动态调用信息。
*
你的问题有点笼统。所以我会尽我所能回答。
要访问 /profile/user
,您必须使用 URL-rewriting。您必须启用 Apache 的 mod_rewrite
(如果它是您的网络服务器)。然后你必须在 .htaccess
文件中定义规则。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^profile/(\w+)$ profile.php?user=
</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>
我正在制作一个需要配置文件系统的网站。
目前我已经设置好了,所以你去 /profile/namehere
并且配置文件将动态显示信息,但当然你必须手动复制粘贴这些配置文件并更改名称才能工作。
我想要它,以便在这种情况下提交表单时输入名称并按提交,它们将被添加到我自己已经完成的数据库中,并且会自动创建配置文件。
我对此进行了一些研究,发现我需要制作一个控制器或配置文件模板来调用信息,但我已经这样做了,只是我不确定并且无法在线找到任何关于如何使用 /profile/namehere/
非常感谢任何帮助或代码示例,非常感谢!
我正在使用的数据库是MYSQL,虽然我会在使用它时迁移到 PDO,但是现在的配置文件可以在 MYSQL 中。我当前的页面代码如下所示:
标题和元标记通过配置文件显示/api。
对于从数据库中选择的内容回显页面内容我正在使用 $row['var'];
和 select
语句来访问数据库。
在当前状态下,复制并粘贴了一个配置文件,并将名称更改为用户名,这就是完成的配置文件,我想要它,所以当您提交表单以创建用户名时,它会自动创建配置文件,可以在 /profile/namehere/
访问,而不是手动创建。
结论
本质上, - 提交表格 - 用户访问 /profile/name - 抓取模板并从数据库中动态调用信息。 *
你的问题有点笼统。所以我会尽我所能回答。
要访问
/profile/user
,您必须使用 URL-rewriting。您必须启用 Apache 的mod_rewrite
(如果它是您的网络服务器)。然后你必须在.htaccess
文件中定义规则。<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^profile/(\w+)$ profile.php?user= </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>