我尝试做的是通过验证cookie(称为“身份识别”)来检查用户的身份。
那是我的代码:
if(!$noCookie) {
$sql = "SELECT * FROM `". TABLE_PREFIX ."_logged` WHERE `logged_cookie` = '". $usersCookie ."' LIMIT 1";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) <= 0) {
echo 'yes cookie';
$row = mysql_fetch_array($query) or die(mysql_error());
print_r($row);
while ($row=mysql_fetch_array($query)) {
echo $usersId = $row["logged_user_id"];
}
} else {
echo 'no cookie';
}
}
如果用户的cookie与表中的cookie相同,则会发生什么 它将返回用户的ID。
这就是我想要做的事情,IF说“是的cookie”,但在一段时间内它什么都不做! 并没有给我一个错误。
答案 0 :(得分:1)
由于没有行,因此无法获取任何内容。
if (mysql_num_rows($query) <= 0) {
这应该是> 0
吗?
答案 1 :(得分:1)
当mysql_fetch_array
评估为0或更低时,您才运行mysql_num_rows($query)
;即没有行。
也许你的意思是:
if (mysql_num_rows($query) > 0) { // <-----
echo 'yes cookie';
$row = mysql_fetch_array($query) or die(mysql_error());
// ...
}
else {
echo 'no cookie';
}
另请注意,您在两个不同的地方运行mysql_fetch_array
,这通常是不对的。您的while
循环不会包含第一个结果行,因为您在循环之前已经执行过mysql_fetch_array
次。
答案 2 :(得分:1)
if(!$noCookie) {
$sql = "SELECT * FROM `". TABLE_PREFIX ."_logged` WHERE `logged_cookie` = '". $usersCookie ."' LIMIT 1";
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query) > 0) {
echo 'yes cookie';
$row = mysql_fetch_array($query) or die(mysql_error());
foreach ($row as $r)
echo $r["logged_user_id"];
} else {
echo 'no cookie';
}
}