Imgshot注销管理面板错误

时间:2013-12-11 22:49:56

标签: php

当我在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我如何解决错误?

2 个答案:

答案 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());
    }
相关问题