2010-07-14 101 views
0

這可能看起來像一個愚蠢的問題,但它無形中阻止了我。我相信答案是很小的。我認爲這只是我一直在查看代碼太久的情況之一。無法比較兩個PHP變量

我想比較兩個PHP變量,看看它們是否相同。正如您在下面看到的,我將$verification_answer與今天的日期strrev(date("Ymd"))進行了比較,相反。因此,今天$verification_answer將是31700102.然而,每次嘗試進行比較時,if語句都會執行(作爲不匹配)。

$verification_answer = strrev(date("Ymd")); 

if($verification != $verification_answer){ 
    $failed .= "<h2>Attention:</h2><p>The verification code is incorrect. Please try again.</p>"; 
} 

任何人都可以看到這個問題嗎?謝謝!


UPDATE:$verification從HTML用戶輸入:

$verification = mysql_escape_string($_POST['verification']); 
+0

請發佈$驗證是什麼。 – 2010-07-14 00:24:25

+0

'$ verification'的值是什麼?它從何而來? – jigfox 2010-07-14 00:27:45

+0

$驗證來自HTML用戶輸入。我已經確保(通過echo())提交表單後,$ verification和$ verification_answer顯示爲相同的值 – littleK 2010-07-14 00:36:24

回答

6

if聲明沒有什麼錯。顯示兩個值,你應該看到某種形式的區別:

var_dump($verification); 
var_dump($verification_answer); 

也許$verification不包含你怎麼想這樣做,或者你拼錯它更早,分配給不同的變量,或...

3

我比較$ verification_answer與strrev(日期( 「年月日」))

如果這實際上是什麼你打算這麼做,我想你在第一行弄亂了變量的名字;它應該是:

$verification = strrev(date("Ymd")); 

如果您意外覆蓋的$verification_answer值和當它未定義的比較使用$verification,比較永遠是假的。 PHP會發出警告,但是如果你禁用了它們,你將看不到它

+0

Woops,這只是打字時輸入錯誤。 – littleK 2010-07-14 00:40:45

0

我必須拼寫驗證錯誤的地方......我複製並粘貼每個現有變量名稱的「驗證」,它解決了問題。謝謝!

+1

如果您在開發過程中在'php.ini'中打開警告,將有助於避免此類事情 – 2010-07-14 00:58:26