众所周知,facebook是一个非常好的基于php的应用程序。我想知道他们是如何为用户配置文件创建页面的。
正如我们所知,每个用户的页面看起来都是一样的,只有页面内的内容会根据用户的不同而变化。
那么,我们如何使用php创建类似的东西呢。我们如何将html页面作为模板,并根据用户登录名进行调用。
我想开始一些想法,因为我正在构建类似的东西。
您真的不需要模板系统。只需将不同的数据传递给它。
<?
$user = mysql_query("SELECT * FROM users WHERE id='62' LIMIT 1");
$u = mysql_fetch_array($user);
?>
Welcome, <?=$u['username']?>.<br><br>
Thanks for visiting our site. How is your mother, <?=$u['mother_name']?>?<br><br>
Username: <input type="text" name="username" value="<?=$u['username']?>" />
显然,这可能需要一些调整,更多的检查,一个实际的表单标记。。等等,但它应该能很好地说明如何在不需要模板类型标记替换系统的情况下编写动态页面。
欢迎来到动态网页设计的世界,
假设您不想查看CMS:
本质上,你将创建一个网页,但你将使用php标签来代替内容,这些标签很可能会请求和回复数据库内容,内容通常由get变量决定(在Facebook的情况下,该变量是用户id)。
更具体地说,您将在页面顶部使用以下代码的更复杂版本:
<?php
$givenId = $_GET["uid"]; //or whatever your get variable is
if(ctype_digit($givenId)){ //or whatever validation you want to use to prevent sql injection
$givenId = intval($givenId);
mysql_connect("localhost", "USERNAME", "PASSWORD");
mysql_select_db("YOUR_DB");
$oisthere = mysql_query("SELECT * FROM TABLE WHERE id=$givenId");
mysql_close();
if(mysql_num_rows($oisthere)!=0){
$sqlholder = mysql_fetch_row($oisthere);
}
else{
//return error
}
}
?>
然后,在您的页面中,您可以引用<?php echo($sqlholder[1]); ?>
,其中第一列包含他们的用户名或状态或其他重要数据。
然而,你问这个问题的事实告诉我,你对php、mysql和动态web设计一般不太了解。正因为如此,我建议你在阅读并掌握概念之前不要开始构建你的网站。作为一个起点,我建议:w3schools。
您需要使用一些标记,在输出时,您应该用特定的内容替换这些标记。一个很好的例子是{text}是标记时的<p>{text}</p>
。
从头开始并不容易。我建议从一些内容管理系统(CMS)开始,如Joomla!,Drupal、PostNuke等。如果你真的想做一个完整的自定义工作,那么我会研究一些面向模板的框架,比如Smarty、Django或CodeIgniter。