2013-03-31 17 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