我是 PHP 新手,我很好奇您如何动态生成页面?
我有一个用户表,我从我的数据库中提取并显示在我的主页上,并且我知道我可以将他们的用户 ID 作为 POST 变量传递给“mysite.com/profilepage.php”,然后对此进行查询将提取该 ID 的所有相关信息的页面,但说我希望该页面为“mysite.com/user-profiles/john-doe.php”?
这会用.htaccess
文件完成吗?任何帮助是极大的赞赏!
如果您必须调用该页面mysite.com/user-profiles/john-doe.php
,您可以使用评论中提到的 mellamokb 的 URL 重写将 URL 更改为该 URL。
但就 PHP 而言,这样做的方法是创建一个 PHP 页面(我将建议user-profiles.php
),然后使用GET
或将用户名传递给它POST
。假设您只是在阅读并且相关信息是公开的,GET
这似乎很好,并且在这里更容易解释。
user-profiles.php?username=John-Doe
您可以通过将浏览器指向以下代码并将其包含在以下代码中来访问相关页面(由 PHP“动态”生成)user-profiles.php
:
if ( isset($_GET['username']) )
{
$username = $_GET['username'];
// you now know the passed username
}
else
{
// some kind of error handling for when there is no username
}
您现在知道您的 PHP 文件中有相关的用户名,并且可以根据需要使用它来创建页面。如果您愿意,还可以使用 URL 重写来更改user-profile.php?username=John-Doe
。user-profiles/John-Doe
警告:$_GET
如果有问题的页面要以任何方式修改数据库,或者要从数据库中获取私人信息,请不要使用。它在任何方面都不安全。在创建执行上述任何一项操作的页面之前,请阅读 PHP 安全性。
如果您是 PHP 新手并且没有看过任何框架,请看一下敏捷工具包。它在 jquery 和 php 之间进行了一些巧妙的集成,这将为您的页面提供漂亮的外观和感觉。它还鼓励您使用 ModelViewController (MVC) 将用于数据库访问和功能的代码部分与纯粹用于网页布局的代码部分分开。
上面提到的 URL 重写选项是相同的,但是当用户登录时,您可以从 $this->api->auth('xxx') 访问用户信息,其中 xxx 是用户表中的列。
该框架需要一些学习,但 PHP 也是如此,并且很容易养成编写 PHP 代码的坏习惯,这意味着随着网站变得越来越大,您会发现维护代码变得更加困难。