2013-03-31 20 views
0

我失去了我的變量$用戶,一旦我打電話給我的錯誤函數幷包含頁腳文件。我在腳註中使用$ user函數來顯示一些信息,但是當我去var_dump它時,它只是表示空。請注意,我正在使用某人創建的數據庫框架,因此查詢可能看起來很奇怪,但它具有100%的功能和安全性。錯誤消息被調用後PHP丟失變量

這是我的/包括/功能文件:

$user_query = $db->query("SELECT * FROM `users` WHERE `id`='$_COOKIE[id]' LIMIT 1"); 
$user = $db->getArray($user_query); 

function error($input){ 

      echo '<div id="error_box"><h1>Ooops!</h1><br> 
      '.$input.'<br /><a href="javascript:history.go(-1)"><b>Back to previous page.</b></a></div>'; 

    require_once('./layout/footer.php'); 
    die; 

} 

和我/layout/footer.php文件是:

  if (!empty($user['active'])){ 

      //info here 

     } 
     else { 

      //info here 

      var_dump($user); 

     } 
+0

這不是100%安全的,但那些bash的評論會來..;)..和這個代碼有什麼錯?錯誤'函數不知道'$ user'變量是正確的,它不在'error'的範圍內。 – dbf

+0

閱讀PHP變量作用域。在函數外聲明的變量在其內部不會自動可見。 – DCoder

+0

謝謝! 我遺漏了一些安全的腳本,編輯它一點:) – user1888260

回答

0

$user超出範圍在error()。快速解決方法是global它。所以:

function error($input){ 
    global $user; 
    // ... 
} 

這可能是值得在一般variable scope讀了。

+0

和什麼將永久修復? :) – dbf

+0

感謝您參考變量範圍,它幫助,現在修復! – user1888260