php
  • mysql
  • 2013-07-17 104 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你是對的。我已經更新了答案。 –

    相關問題