我正在使用此功能来确定我的应用程序是在线还是离线:
function online() {
if ($online == "0") {
if($_SESSION['exp_user']['userlevel'] != "1") {
include("error/offline.php");
exit();
}
}
}
但是,如果数据库中的数据值设置为0,并且$online
确定='0',为什么那些用户级别不是1的用户不包含error / offline.php?
谢谢:)
答案 0 :(得分:7)
什么是$online
,一个全局变量?如果是这样,您必须global $online
在函数内访问它。现在$online
是一个默认的null
值,它不等于字符串“0”。
答案 1 :(得分:1)
“混乱”是关于全局变量的。但是如果你不确定,调试这样的东西的一种方法是在各个地方添加“echo”或“die”语句,看看代码中发生了什么。在第一个“if”语句中放置一个以查看它是否到达那么远,然后在第二个“if”语句中放入一个。回显您正在测试的变量的值,以便了解条件不起作用的原因。
答案 2 :(得分:1)
JW的调试要点。虽然只是制作一个快速的类,如Logger或Debug,你可以调用日志消息作为回声,而不是用回声乱丢你的代码。或者更好的是使用现有工具,例如http://www.indelible.org/php/Log/guide.html。这将允许您在[FirePHP in Firefox] [2]中进行调试,而不必再次清理echo语句。或者只是直接使用Firebug,如果您只打算在浏览器迭代测试中使用它进行调试。
您可以稍后清理它们或将其用作代码记录程序,该代码记录程序应位于大多数应用程序中,以用于错误记录和报告指标。