2011-07-24 76 views
0

每次運行此代碼時,只有"Not from a"會被寫入,無論該位置是否爲「a」。帶條件語句的問題

function logsIn($dir, $account, $balance) { 
    $d = date("D F d Y - h:i A"); 
    $file = fopen("logs/$dir.txt", "a"); 

    if ($_SESSION['pass'] == "123") { 
     if ($api["Location"] != "a") 
     fwrite($file, "<span style='color:#FF0000;text-align:center';>Not from a.</span>"); 
     else 
     fwrite($file, "From a."); 
    } 
+0

檢查您使用的每個變量的值,並將其值與您的預期值進行比較。基本調試。 –

+0

'location'是「a」還是'Location'是「a」? – Mat

+0

順便說一下,我還建議您在'$ _SESSION'上擺脫那個「神條件」。 –

回答

5

您使用的是被稱爲$api在你的函數變量,但變量不被任何定義。

因此,$api["Location"]不能有值'a' - 這就是爲什麼你總是得到"Not from a"


注意:如果您的函數外部定義了$api變量,那麼它在該函數內部是不可見的。

欲瞭解更多關於此信息,你應該看看本手冊的Variable scope部分。


作爲一個解決方案,我想你可以修改你的代碼,以便:

  • $api預計由您logsIn()函數中的參數,
  • 它傳遞給函數時,你怎麼稱呼它。

您也使$api變量(如果存在的話你的函數外)從功能,使用global關鍵字裏面也可見 - 但它不是好的做法,因爲它使你的函數依賴於外部變量。

+0

工作。謝謝。 – ProgrammingEnthusiast