我似乎在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#?而且,我是否需要为此存储会话。
答案 0 :(得分:1)
您希望有人在会话变量中保存当前登录的用户。最简单的方法是向会话数组添加一些键,例如user,其值是当前登录的用户。
安全点:
您弃用的mysql数据库函数已弃用。看看PDO(google it,找到StackOverflow答案)。它非常相似,但更安全。特别是,请查看使用预准备语句而不是执行连接参数的字符串。在这种情况下,您很容易受到称为SQL注入的攻击(您的搜索将告诉您这是什么!)。 Here是一个起点。
在向用户获取/显示数据之前,您应该确保此人已登录并且已签名,并且首先是相应的用户。例如,用户不应该能够修改为URL(即更改$ _GET变量),然后编辑任何用户的任何配置文件。通常,您希望为用户不应该知道的页面显示404页面,并为他们应该知道的页面重定向401s /登录(例如他们自己的个人资料页面,用户控件中心等)但他们没有登录。
会话劫持是真实的!查看this以了解降低风险的策略。很多是正确的配置。
祝你好运!