公开用户个人资料页面

4
我希望为我的网站添加一个公共个人资料页面。基本上,我已经设置好了数据库、编辑个人资料等等。所有这些都可以正常运作,包括更改您的图片。
我想要做的是让这个名为"profile.php"的文件,使得如果您访问像这样的链接:

http://local.com/profile.php?id=8

它将带您到用户ID为8的用户并显示信息。

我在考虑只需使用 SELECT * FROM users WHERE id='$userid'。

我使用 $id 作为查看页面的用户ID,但我必须将 $userid 设为一个变量,以保存您正在查看的任何个人资料的ID。

接下来,我可以这样做

$id=$_SESSION['id'];
$result3 = mysql_query("SELECT * FROM users where id='$userid'");
while($row3 = mysql_fetch_array($result3))
{ 
$username=$row3['username'];
$email=$row3['email'];
$firstname=$row3['firstname'];
$lastname=$row3['lastname'];
}

我想知道如何使 $userid 等于你正在查看的个人资料,并使链接 profile.php?userid=8 带你到用户 8。
有没有什么想法? :)

2
编辑个人资料和其他功能。一切都正常运作,包括更改您的图片。哇,你确定其他部分都正常工作,但你不知道如何使用$_GET['id']吗? - Prix
我从早上9点开始一直在编码,现在已经是凌晨1:05了。我的思维不太清晰,头痛欲裂,但我只想在睡觉前把这个完成。 - Kevin Harrison
@Prix - 在曲线上也使用了已弃用的库。 - Ed Heal
@KevinHarrison - 你是什么多头怪物?亲爱的,请去睡觉。 - Ed Heal
谢谢@Prix!@EdHeal,我这周刚开始学习PHP,并且接下来几天要完成一个大型的PHP项目。虽然这不是很重要,但唯一学习的方法就是跳进去尝试一切。如果我只是读教科书而从未制作任何东西,那么我就不会学到太多。如果我显得像个新手,请原谅。 - Kevin Harrison
显示剩余4条评论
2个回答

3
最简短的答案是:
$userid = mysql_real_escape_string($_GET['id']);
$result3 = mysql_query(....);
//....

答案的更详细版本是,你不应该使用mysql_query,因为它已经被弃用,并将在新版本中删除。你可以转移到PDO或mysqli。假设你想坚持使用传统函数mysql_*,你需要使用mysql_real_escape_string来保护自己免受SQL注入攻击。然而,不正确地使用mysql_real_escape_string会导致你容易受到攻击。


$_GET ['id'] 会不会获取已登录用户的ID? - Kevin Harrison
不,$_GET ['id'] 将获取链接中的输入。例如:http://localhost/profile.php?id=8 <-- 这个。 - invisal
谢谢!这个完美地运行了,如果我回显 $username 它会显示正确的数据!谢谢!顺便问一下,PDO 和 mysqli 是什么意思?我该如何将它转换为那个呢?我只是这周开始学习 PHP,对 MySQL 没有太多经验。这是我的第一个大型 PHP 项目。但是嘿,我们都要从某个地方开始,对吧?如果您能告诉我关于 PDO 和 mysqli 的信息,我会非常感激,但如果您没有时间也没关系。无论如何,感谢您的帮助! - Kevin Harrison
我实际上对SQL注入很擅长。我大约9个月前学习了SQL注入,这就是我对MySQL有一些了解的原因。正如我之前所说,我从未学过MySQL,但因为学习了SQL注入,我对它有了一点了解。我听说过mysqli,也知道它是什么,但PDO是什么以及mysqli和PDO如何防止SQL注入呢?注:我学过SQL注入,但并不意味着我非常擅长它。我只是有一些经验而已。 - Kevin Harrison
是的,我记得一段时间前读过这方面的内容。我记得有类似这样的代码:$db->prepare("insert into");你能否指点我在哪里可以阅读关于PDO和MySQLi的资料? - Kevin Harrison
显示剩余4条评论

0

$_GET['$variable']; 这种方法用于从URL栏中获取数据。如果您在表单中使用post方法,则使用$_POST['$variable'];


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接