当我在imgshot的管理区域,我想从管理员退出并点击链接注销我得到下一个错误
Notice: Undefined index: user_id in /home/****/public_html/inc/functions.php on line 371
371行中的错误是下一行
where `id`='$_SESSION[user_id]' OR `id` = '$_COOKIE[user_id]'") or die(mysql_error());
整个链接是下一个http://justpaste.it/dt75我如何解决错误?
答案 0 :(得分:0)
更改此代码:
if (isset($_SESSION['user_id']) || isset($_COOKIE['user_id'])) {
mysql_query("update `users`
set `ckey`= '', `ctime`= ''
where `id`='$_SESSION[user_id]' OR `id` = '$_COOKIE[user_id]'") or die(mysql_error());
}
到这一个:
$user_id1 = intval(isset($_SESSION['user_id']) ? $_SESSION['user_id'] : 0, 10);
$user_id2 = intval(isset($_COOKIE['user_id']) ? $_COOKIE['user_id'] : 0, 10);
if ($user_id1 || $user_id2)
mysql_query("update `users`
set `ckey`= '', `ctime`= ''
where `id` in (".$user_id1.",".$user_id2.")") or die(mysql_error());
注意:在cookie中存储user_id不是很安全,因为用户可以用其他值替换它
答案 1 :(得分:0)
错误是因为您检查是否设置了EITHER会话或cookie值,但是然后尝试访问它们。
1,这只是一个通知,而不是错误,所以如果你愿意,你可以忽略它。
但要解决此问题,您可以尝试以下方法:
if (isset($_SESSION['user_id']) || isset($_COOKIE['user_id'])) {
$user_id= isset($_SESSION['user_id'])?$_SESSION['user_id']:$_COOKIE['user_id'];
mysql_query("update `users`
set `ckey`= '', `ctime`= ''
where `id`='$user_id'") or die(mysql_error());
}