如果声明不起作用,但有点工作

时间:2012-11-05 05:21:55

标签: php file-io if-statement

我创建了一个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 :(得分:0)

这些是未初始化的变量,所以如果你什么都不输入,那么你得到if(false == false),这是真的。

这是因为php将null解释为false。我承认这很奇怪。

检查您的变量是否已设置,或使用默认值初始化它们。

答案 1 :(得分:0)

尝试对从文件中读取的内容使用htmlspecialchars函数以及安全方面,然后对从文件和用户输入读取的输入使用trim