如何在注册期间为用户创建特定的URL?
如何在MySQL中做到这一点?如何在注册期间为用户创建特定的URL?
当用户在网站上创建帐户时,我想为他/她创建一个配置文件URL。例如:http://www.domain.com/profile.php?id=111101
,下一个用户的URL可能是:http://www.domain.com/profile.php?id=111102
我需要设置自动增量吗? 有些字段我在用户注册过程中保存的是:
$sql="INSERT INTO Members (fldFullName, fldEmail, Password, Gender, DOB)
VALUES
('$fname','$email','$pass', '$gender', '$date')";
截至目前,对于URL字段为:ProfileURL
谢谢。
您可以创建一个自动递增的ID列。然而,如果你传递给你的 网址你必须非常小心你如何处理填充的查询表示,用户 分布(如避免这种情况)
SELECT * FROM Members WHERE ID = '.$id.';
所以,你可以做 $ SQL =“INSERT INTO成员(ID,fldFullName,fldEmail,密码,性别,DOB) VALUE ('','$ fname','$ email','$ pass','$ gender','$ date')“
小心用户输入虽然
你有为您的用户数据库表中的每条记录存储一个ID字段,并且应该将其设置为启用了auto_increment的主键。这样,无论何时将新记录添加到数据库表中,该记录都将自动获得一个唯一的ID号,以便您访问它。
接下来,当您创建profile.php时,请在页面顶部检查$ _GET数组中是否存在id,如果存在,请将其转义以防止sql注入并执行mysql查询从特定用户的记录中提取所需的信息。事情是这样的:
if(isset($_GET['id'])) { //check if id exists in $_GET
$id = mysql_real_escape_string($_GET['id']); //prevent sql injection
$resc = mysql_query("SELECT fldFullName, fldEmail, Password, Gender, DOB FROM Members WHERE id='$id' LIMIT 1"); //query the db for record
if(mysql_num_rows($resc) == 1) { //make sure the user exists
$user = mysql_fetch_assoc($resc); //convert mysql resource into array that can be used throughout your script
} else {
echo "no user with that id";
} else {
echo "no id provided.";
}
现在所有用户的信息都存储在一个阵列称为$user
以便在整个页面中使用。
然后,如果你想获得幻想与它更好的SEO效果,看看阿帕奇mod_rewrite
模块,这将允许你做URL重写,这样就可以有一个看起来像/profile/someusername
而非/profile.php?id=1234
网址。 好多了!
这里是开始与mod_rewrite的一些资源:`DESC members`:
请从输出更新您的问题 – 2010-07-22 15:51:39