2

我正在使用此功能来确定我的应用程序应该在线还是离线:

function online() {
   if ($online == "0") {
     if($_SESSION['exp_user']['userlevel'] != "1") {
          include("error/offline.php");
          exit();
                                                   } 
                        }
                   }

但是,数据库中的数据值设置为0,并且$onlinedoes ='0',为什么用户级别不是1的人不包含error/offline.php?

谢谢 :)

4

3 回答 3

7

什么是$online全局变量?如果是这样,您必须global $online在函数内访问它。现在$online是一个默认null值,不等于字符串“0”。

于 2009-06-07T19:16:21.547 回答
1

“混乱”对全局变量是正确的。但是如果你不确定,调试这样的事情的一种方法是在不同的地方添加“echo”或“die”语句,看看代码中发生了什么。将一个放在第一个“if”语句中以查看它是否达到那么远,然后将一个放在第二个“if”语句中。回显您正在测试的变量的值,这样您就可以知道为什么这些条件不起作用。

于 2009-06-07T19:22:53.047 回答
1

到 JW 的调试点。无需在代码中乱扔回声,尽管只需创建一个快速类,例如 Logger 或 Debug,您可以调用它来将消息记录为回声。或者更好的是使用现有的工具,例如http://www.indelible.org/php/Log/guide.html。这将让您在 [FirePHP in Firefox][2] 中进行调试,而无需再次清理 echo 语句。或者,如果您只打算在浏览器迭代测试中使用它进行调试,则直接使用 Firebug。

您可以稍后将它们全部清理干净或将其用作代码记录器,该代码记录器应该在大多数较大的应用程序中用于错误记录和报告指标。

于 2009-06-07T19:57:29.387 回答