我有这个基本查询,显示哪个用户可以访问哪个页面。
$query = mysql_query("SELECT UserName FROM tblUsers WHERE PageOne = 1") or die (mysql_error());
本质上,这是对所有有权访问 PageOne 的用户进行检查。
我正在尝试比较$currentUser = $_SESSION['username'](正确显示登录的用户)是否是此人。
在获得所有用户之后,
我做了这个简单的循环来检查他们是否可以访问。
while ($row = mysql_fetch_assoc($query))
{
if (in_array($currentUser,$row["UserName"]))
echo "you have access"; //for testing purposes
else
die("you're not authorized");
}
当它不应该时,这将始终进入 else 语句。如果我尝试对此进行调试,我发现在查询中应该有三个用户,但$row["UserName"]只返回一个用户(第一个用户)。
但是,如果我摆脱 if/else 语句并简单地打印 $row["UserName"],它会打印正确的用户。
那么,我将如何解决这个问题?
谢谢你!
编辑
在 while 循环中,如果我运行 echo $row["UserName"],我会得到 User1User2User3 (其中 User3 是 CurrentUser)
要调试,我运行
if ($currentUser == $row["UserName"])
echo "you have access";
else
echo $row["UserName"];
我得到
User1User2你有权限