我在下面有这个脚本,它会扫描允许查看帖子的用户。如何更新它以便它将查看的人的ID与存储在该字段中的人匹配。如果它匹配,则它不起作用。存储的条目将类似于99394david,324234smith,34343jane。所以这个脚本我没有匹配它。
$kit = mysql_real_escape_string($_GET['id']);
$sql="SELECT `Who_can_see` from `posts` where `post_id` = '$kit'";
$result=mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());
if ($result == "")
{
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0)
{
print("");
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
$userallowed = htmlspecialchars($row['who_can_see']);
}
}
//$personid is drawn from the database. its the id of the
person viewing the link.
if ( $userallowed == $personid ) {
echo("allowed");
} else {
echo("not allowed");
die();
}
?>
答案 0 :(得分:0)
我只是将$personid
添加到查询中(尽管我对您如何准确地填充posts
表格有疑问...):
$sql="SELECT `Who_can_see` from `posts`
where `post_id` = '$kit'
AND `Who_can_see` = '$personid'";
如果您的结果包含一行,则允许用户查看帖子。
顺便说一句,我还建议使用预准备语句来避免任何潜在的SQL注入问题。
修改:根据Who_can_see
可以包含以逗号分隔的条目列表的事实,您可以使用原始脚本,只需更改匹配方式,例如使用{{ 3}}
if ( stripos($userallowed, $personid) !== false ) {
// $personid is found in $userallowed
echo("allowed");
} else {
echo("not allowed");
die();
}