-2

我真的需要一些关于 PHP 的帮助。我总是收到这个错误:

注意:未定义索引:第 21 行 C:\xampp\htdocs\fazebook\inc\class.user.php 中的 sUS_UserID

我的“错误”代码:

$UserLoginQ = $DB->Query("SELECT * FROM `Users` WHERE `UserID` = '{$_COOKIE["sUS_UserID"]}'"); // LINE 21
if (intval($DB->Num($UserLoginQ)) > 0) {
    $UserLoginA = $DB->Arr($UserLoginQ);
    if ($_COOKIE["sUS_UserID"] == $UserLoginA["UserID"]) {
        if ($_COOKIE["sUS_Security"] == md5($UserLoginA["LastIP"])) {
            if ($_COOKIE["sUS_Password"] == md5($UserLoginA["Password"])) {
                $this->ID       = (int) $UserLoginA["UserID"];
                $this->Name     = $UserLoginA["Username"];
                $this->LoggedIn = true;
            }
        }
    }
}
4

1 回答 1

1

您需要确保 cookie 存在并命名为“sUS_UserID”。您收到的错误消息似乎表明您没有使用该名称定义的 cookie。

为清楚起见,您可能希望考虑更改插入 $_COOKIE 数据的方式。这不是必需的,但可以提高代码清晰度和语法突出显示,并且可以帮助您避免难以发现的引用错误。

$UserLoginQ = $DB->Query("SELECT * FROM `Users` WHERE `UserID` = '" . $_COOKIE['sUS_UserID'] . "'");

最后,考虑阅读 SQL 注入漏洞。Cookie 是用户可编辑的,在 SQL 查询中使用未经处理的用户内容可能会使您的数据面临风险。

于 2013-07-17T22:02:30.843 回答