2012-11-05 87 views
0

我做了一個php腳本,看看txt文件的內容是否與用戶輸入相同。我寫了一個if語句來判斷它是否正確,以及它是否發送給其他人。如果我不發送任何變量,那麼它的工作原理,並顯示如果陳述不起作用,但有點工作

a is b is file is 1

,但如果我輸入文件和正確的內容,它顯示

a is test.txt b is hello file is hello 0

這裏是我的代碼

<?php 
session_destroy(); 
$a=htmlspecialchars($_REQUEST['a']); 
$b=htmlspecialchars($_REQUEST['b']); 
$my_file = file_get_contents($a); 
echo "a is $a\n"; 
echo "b is $b\n"; 
echo "file is $my_file\n"; 
if ($my_file == $b) { 
echo "1"; 
}else { 
echo "0"; 
} 
?> 

任何想法?

+2

讀取輸入用裝飾有什麼文件中是否包含空格(空格,製表符,換行符等)? –

+0

試試條件(trim($ my_file)== $ b) – janenz00

+0

非常感謝!!!!!!我試過(修剪($ my_file)== $ b),它很完美 – user1685192

回答

0

這些都是未初始化的變量,所以如果你什麼都沒輸入,那麼你會得到if(false == false)這是真的。

這是因爲php將null解釋爲false。這很奇怪,我承認。

請檢查您的變量是否已設置,或使用默認值進行初始化。

+0

你誤會了。當OP「不發送任何變量」時,代碼正常工作。當變量被初始化時會發生問題。 –

0

嘗試使用您從您的文件以及閱讀內容的htmlspecialchars功能只是爲了安全起見,然後從文件和用戶輸入以及