2012-07-11 81 views
1

我是PHP新手,对于如何快速生成页面感到好奇?用PHP动态生成页面

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

这是用.htaccess文件完成的吗?任何帮助是极大的赞赏!

+3

Google for'url rewriting'。你可以把'user-profiles/john-doe.php'的请求变成'profilepage.php?username = john-doe'。 – mellamokb 2012-07-11 19:40:22

+0

^^^不是* mysite.com/profilepage.php?id = 7 *是一个比* mysite.com/user-profiles/john-doe.php *更糟糕的想法*忽略所有的SEO BS – 2012-07-11 19:43:06

+0

谢谢你们,刚刚好奇心,如果我传递了用户ID,我仍然可以使用URL重写来将ID自动更改为该用户的名称?记住可能有300个用户? – Liam 2012-07-11 19:50:09

回答

1

如果您必须将该页面称为mysite.com/user-profiles/john-doe.php,则可以使用URL重写作为评论中提到的mellamokb来将URL更改为该URL。

但就PHP而言,要做到这一点的方法是创建一个PHP页面(我要建议user-profiles.php),然后通过用户名到它要么GETPOST。假设你只是在阅读而且所涉及的信息是公开的,那么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

警告:不要使用$_GET如果有问题的网页要么会被修改数据库中的任何方式,或者如果它要越来越从数据库中的私人信息。它不以任何方式安全。请在创建执行这些任务的页面之前阅读PHP安全性。

+0

Ahhh谢谢@DragoonWraith,出于好奇,如果我传递了用户ID,我仍然可以使用URL重写将ID更改为该用户的名称自动?记住可能有300个用户? – Liam 2012-07-11 19:49:07

+0

用户数量不应该关系。我不确定你的意思是“自动将ID更改为该用户的名称”。除非你的意思是“John-Doe”根本就不是身份证,但ID是一个数字......我不确定,但我确信它可以完成。 – KRyan 2012-07-11 19:51:49

1

如果你是PHP的新手,并没有看过任何框架,看看agiletoolkit。它在jquery和php之间进行了一些整洁的整合,这会给你的页面带来不错的外观和感觉。它还鼓励您使用ModelViewController(MVC)将代码中用于数据库访问和功能的部分与纯粹用于网页布局的部分分开。

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

该框架需要一点点学习,但PHP也是如此,很容易陷入非常不好的习惯,编写PHP代码,这意味着当网站变得更大时,您会发现维护代码变得更加困难。