$getwhole_messages = $db->query("
SELECT * FROM `user_messages`
WHERE `sender_id`='".$_SESSION['RVuser']."' ||
`reciever_id`='".$_SESSION['RVuser']."' &&
`sender_id`='".$_GET['uid']."' ||
`reciever_id`='".$_GET['uid']."'"
);
我想在哪里检查会让我知道会话ID与uid匹配。它将在sender_id或reciever_id中。
答案 0 :(得分:0)
评论太长了,除了tadman所说的(你的SQL注入攻击的风险很大),这个查询太开放了。
当存在以下任何条件时,您就具有此匹配:
条件1:当sender_id = $ _SESSION [' RVuser']
条件2:当receiver_id = $ _SESSION [' RVuser'] AND sender_id = $ _GET [' uid']
条件3:当receiver_id = $ _GET [' uid']
因此,所有人都需要使用?uid=#
加载您的网页以获取有关条件3的信息。
答案 1 :(得分:-1)
始终清理易受攻击的输入!我假设你在我的例子中使用了MySQLi。
$select = sprintf("SELECT * FROM user_messages WHERE sender_id=%d || reciever_id=%d && sender_id=%d || reciever_id=%d;",
$_SESSION['RVuser'],
$_SESSION['RVuser'],
$db->real_escape_string($_GET['uid']),
$db->real_escape_string($_GET['uid'])
);
if($getwhole_messages = $db->query($select))
// Prosess results
} else {
// Output Query error
}
请提供错误详情,以便我们提供更多答案。