使用PHP动态生成页面

使用PHP动态生成页面,php,mysql,.htaccess,Php,Mysql,.htaccess,我是PHP新手,我很好奇如何动态生成页面 我有一个用户表,我正在从数据库中提取并显示在我的主页上,我知道我可以将他们的用户ID作为POST变量传递到“mysite.com/profilepage.php”,然后在该页面上有一个查询,该查询将提取该ID的所有相关信息,但我希望该页面是“mysite.com/user profiles/john doe.php” 是否使用.htaccess文件执行此操作?非常感谢您的帮助 如果您必须将页面命名为mysite.com/user profiles/joh

我是PHP新手,我很好奇如何动态生成页面

我有一个用户表,我正在从数据库中提取并显示在我的主页上,我知道我可以将他们的用户ID作为POST变量传递到“mysite.com/profilepage.php”,然后在该页面上有一个查询,该查询将提取该ID的所有相关信息,但我希望该页面是“mysite.com/user profiles/john doe.php”


是否使用
.htaccess
文件执行此操作?非常感谢您的帮助

如果您必须将页面命名为
mysite.com/user profiles/john doe.php
,您可以使用评论中提到的URL重写将URL更改为该URL

但就PHP而言,实现这一点的方法是创建一个PHP页面(我建议
user profiles.PHP
),然后使用
GET
POST
将用户名传递给它。假设您只是在阅读,并且所讨论的信息是公开的,
GET
似乎很好,这里更容易解释

通过将浏览器指向
user profiles.PHP?username=John Doe
并在
user profiles.PHP中包含这样的代码,您可以访问相关页面(由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


警告:如果相关页面将以任何方式修改数据库,或者将从数据库获取私人信息,请不要使用
$\u GET
。它在任何方面都不安全。在创建执行上述任一操作的页面之前,请先阅读PHP安全方面的内容。

如果您是PHP新手,还没有看过任何框架,请查看。它在jquery和php之间进行了一些巧妙的集成,这将为您的页面提供良好的外观和感觉。它还鼓励您使用ModelViewController(MVC)将用于数据库访问和功能的代码部分与纯粹用于网页布局的代码部分分开

上面提到的URL重写选项是相同的,但是当用户登录时,您可以从$this->api->auth('xxx')访问用户信息,其中xxx是用户表中的列


该框架需要一点学习,但PHP也需要一点学习,编写PHP代码很容易养成非常坏的习惯,这意味着随着网站规模的扩大,您将发现维护代码变得更加困难。

Google for
url rewriting
。你可以将对
user profiles/john doe.php
的请求转换为
profilepage.php?username=john doe
^^^^^^^并不是说mysite.com/profilepage.php?id=7比mysite.com/user-profiles/john-doe.php更糟糕,只是出于好奇,忽略所有的SEO bstanks家伙,如果我传递用户id,我仍然可以使用url重写自动将id更改为该用户的名称吗?记住可能有300个用户?如果是我,我会删除
.php
,文件扩展名在web地址中越来越不常见。重写规则仍然能够重定向到正确的位置。实际上,您根本不必使用重写规则,kiip it simple只需使用mysite.com/profilepage.php?id=7 profilepage.php,将使用id从DBAHH获取数据谢谢@DragoonWraith,只是出于好奇,如果我传递用户id,我仍然可以使用url重写自动将id更改为该用户的名称吗?记住可能有300个用户?用户的数量不重要。我不知道你所说的“自动将id更改为该用户的名称”是什么意思。除非你的意思是“John Doe”根本不是身份证,但身份证是一个数字。。。我不确定,但我很确定这是可以做到的。