当我在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我该如何修复错误?
更改此代码:
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不是很安全,因为用户可以将其替换为其他值
错误是因为您检查是否设置了会话或cookie值,但随后尝试同时访问这两个值。
首先,这只是一个通知,而不是一个错误,所以如果你愿意,你可以忽略它。
然而,要修复,您可以尝试以下操作:
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());
}