php
  • mysql
  • 2013-07-17 59 views -2 likes 
    -2

    我真的需要一些关于PHP的帮助。我总是得到这个错误:未定义的索引:sUS_UserID

    Notice: Undefined index: sUS_UserID in C:\xampp\htdocs\fazebook\inc\class.user.php on line 21

    我的“错误”代码:

    $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; 
          } 
         } 
        } 
    } 
    
    +0

    该错误表示'$ _COOKIE'数组中没有“sUS_UserID”键。换句话说,你的cookie不存在。 – bfavaretto

    +1

    @deceze我对你关联的Q/A有着复杂的感受。你知道这是否曾经在meta上讨论过吗?不应该将它分解为单独的问题/答案,还是转移到标记wiki? – bfavaretto

    +0

    @bfavaretto罕见的双重打击! –

    回答

    1

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

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

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

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

    +1

    你确定吗?它似乎工作http://codepad.org/eqygVHxY – bfavaretto

    +0

    @bfavaretto你是对的。我已经更新了答案。 –

    相关问题