2010-11-07 106 views
1

這個腳本在線工作而不是通過離線WAMP ...PHP腳本在線,但沒有離線

function current_user() 
    { 
     static $current_user; 
     if(!$current_user) 
     { 
      if($_SESSION['userID']) 
      { 
       $userID = intval($_SESSION['userID']); 
       $query = "SELECT * 
          FROM `users` 
          WHERE `id` = $userID"; 
       $data = mysql_query($query); 
       if(mysql_num_rows($data)) 
       { 
        $current_user = mysql_fetch_assoc($data); 
        return $current_user; 
       } 
      } 
     } 
     return $current_user; 
    } 

當這個函數被調用時,我得到以下錯誤信息......

Notice: Undefined index: userID in C:\wamp\www\alpha\_includes\session.php on line 38 

第38行是$userID = intval($_SESSION['userID']);

該錯誤只發生在未設置userID SESSION變量時。該功能通過離線測試計算機(運行WAMP)的頁面調用。


作爲一個便箋,這不是我的腳本。信用歸因於Think Vitamin Membership的Jim Hoskins。

+0

更正標題.... PHP腳本在線,但不會脫機。 – SgtOJ 2010-11-07 13:04:34

+0

將'$ userID'重命名爲'$ somethingwhichisnotasessionkey',有什麼區別? – Harmen 2010-11-07 13:06:08

回答

3

您在一臺服務器上啓用了通知,但沒有啓用另一臺服務器。本通知只是告訴你正試圖讀取一個不存在的數組元素。

相反,試試這個

if(isset($_SESSION['userID'])) 
+0

謝謝。我意識到在你發佈你的答案之前幾秒鐘,他仍然發佈了他的答案。我有錯誤檢查。再次感謝你。 – SgtOJ 2010-11-07 13:17:06

3

這是一個通知,而不是一個錯誤。修復:

if (isset($_SESSION['userID']) && $_SESSION['userID']) 
+0

謝謝。我在問爲什麼它顯示爲離線,但不在線。你間接回答我的問題。我記得我的php.ini在線和離線之間是不同的。 – SgtOJ 2010-11-07 13:16:28

+0

我很樂意爲您提供幫助。但是,保羅有正確的答案。感謝你的快速回復。 – SgtOJ 2010-11-07 13:17:38

0

變化if($_SESSION['userID'])if(isset($_SESSION['userID']))首先檢查我們是否使用它之前的會話變量「用戶ID」設置。

試試這個代碼

function current_user() 
    { 
     static $current_user; 
     if(!$current_user) 
     { 
      if($_SESSION['userID']) 
      { 
       $userID = intval($_SESSION['userID']); 
       $query = "SELECT * 
          FROM `users` 
          WHERE `id` = $userID"; 
       $data = mysql_query($query); 
       if(mysql_num_rows($data)) 
       { 
        $current_user = mysql_fetch_assoc($data); 
        return $current_user; 
       } 
      } 
     } 
     return $current_user; 
    }