2011-09-18 256 views
1

我正在爲我的網站製作登錄腳本。PHP字符串與===比較

它發出了一個POST(使用curl)與用戶的另一臺服務器傳遞等
如果信息是錯誤的,它返回Bad login

但即使是當我檢查的答覆錯了,它會說登錄是成功的。

if ($result === "Bad login"){ 
    $password_status = 'Wrong password.'; 
    $error = true; 
} 

我也曾嘗試strcmp也沒有成功。

+0

什麼是'$結果'?它從何而來? – zerkms

+0

你說回覆總是成功的,但是如果'if語句'遺漏了那部分。另外我認爲你不需要在這裏進行嚴格的比較('===')。 – PeeHaa

+0

@zerkms:這是來自POST請求使用curl的回覆 – Antonio

回答

1

是的,嘗試var_dump($ result),因爲它可能包含其他字符。

也許嘗試:

<?php 
if (strpos(strtolower($result), 'bad login') !== false) { 
    $error = true; 
} 
+0

可能會更好評論 – PeeHaa

+0

@PeeHaa:這是他的問題的答案,我認爲它應該是一個答案。 – Cyclone

+0

感謝,似乎工作 – Antonio

0

什麼是$精確值結果呢?你的完整陳述是什麼?

$結果必須是完全匹配的,例如:

echo ('Bad login' === 'Bad login') ? 'True<br />' : 'False<br />'; // True 
echo ('Bad login ' === 'Bad login') ? 'True<br />' : 'False<br />'; // False (Space after login) 
echo ('Bad Login' === 'Bad login') ? 'True<br />' : 'False<br />'; // False (Capital L on login) 

編輯:

這是我會怎麼比較:

$result = trim(strtolower($badLoginVariable)); 

if($result === 'bad login') { 
    // Do stuff here 
} 
+0

作爲評論可能會更好 – PeeHaa