个人资料页面PHP

时间:2015-07-19 12:33:04

标签: php mysql

我似乎在profile.php上从用户处获取ID时遇到了困难。

<?php session_start(); require 'include/connect.php'; if(!$_SESSION['key']){ header('Location: login.php'); } $uid = $_GET['id']; $sql = "SELECT * FROM users WHERE id = '$uid'"; $query = mysql_query($sql); while($row = mysql_fetch_array($query)){ $user = $row['username']; } ?> PHP:

profile.php?id=3

如您所见,当您使用获取数据添加到网址时(EX:profile.php) 您访问了相应用户的个人资料;但是我想获取用户的id并从数据库中提取他们的信息,以便他们在转到public void run(String... commands) { ... } 时查看他们自己的个人资料。(不添加GET扩展名)

问题:我可以使用哪种方法来查询用户的ID#?而且,我是否需要为此存储会话。

1 个答案:

答案 0 :(得分:1)

您希望有人在会话变量中保存当前登录的用户。最简单的方法是向会话数组添加一些键,例如user,其值是当前登录的用户。

安全点:

  1. 您弃用的mysql数据库函数已弃用。看看PDO(google it,找到StackOverflow答案)。它非常相似,但更安全。特别是,请查看使用预准备语句而不是执行连接参数的字符串。在这种情况下,您很容易受到称为SQL注入的攻击(您的搜索将告诉您这是什么!)。 Here是一个起点。

  2. 在向用户获取/显示数据之前,您应该确保此人已登录并且已签名,并且首先是相应的用户。例如,用户不应该能够修改为URL(即更改$ _GET变量),然后编辑任何用户的任何配置文件。通常,您希望为用户不应该知道的页面显示404页面,并为他们应该知道的页面重定向401s /登录(例如他们自己的个人资料页面,用户控件中心等)但他们没有登录。

  3. 会话劫持是真实的!查看this以了解降低风险的策略。很多是正确的配置。

  4. 祝你好运!