2009-06-07 97 views
2

我使用這個功能來確定我的應用是否應當被在線或離線:這個功能有什麼問題?

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

然而,隨着數據庫設置爲0的數據值,並$online確實=「0」,爲什麼是錯誤/offline.php不包括那些誰是用戶級別不是1?

謝謝:)

回答

7

什麼是$online,全局變量?如果是這樣,您必須執行global $online才能在函數內部對其進行訪問。現在$online是一個默認的null值,它不等於字符串「0」。

+0

$ online是一個全局變量。我如何使它成爲全局的函數來訪問它? – bear 2009-06-07 19:21:10

+0

在使用$ online之前,您可以在您的函數中編寫全局$ online。因爲它存在於你的函數中,所以$ online表示與全局$ online相同的東西。 – chaos 2009-06-07 19:23:14

1

「混沌」對於全局變量是正確的。但是如果你不確定,一種調試方式就是在各個地方添加「echo」或「die」語句,以查看代碼中發生了什麼。把第一個「if」語句放入第一個「if」語句中,看看它是否到達那麼遠,然後是第二個「if」語句中的一個。迴應您正在測試的變量的值,以便您可以說明條件無法正常工作的原因。

1

要JW的調試點。不要亂丟代碼,只要創建一個快速的類,例如記錄器或調試,你可以調用它來記錄消息作爲回聲。或更好的使用現有的工具,如http://www.indelible.org/php/Log/guide.html。這會讓你在[Firefox中的FirePHP] [2]中進行調試,而不必再次清理回聲。或者,如果您只打算在瀏覽器迭代測試中將其用於調試,則可直接使用Firebug。

您可以稍後將它們全部清理乾淨,或將其作爲代碼記錄器使用,它應該在大多數大型應用程序中用於錯誤記錄和報告指標。