0

我制作了一个 php 脚本来查看 txt 文件的内容是否与用户输入的内容相同。我写了一个 if 语句,看看它是否正确,如果它不发送给 else。如果我不发送任何变量,那么它可以工作并显示

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";
}
?>

有任何想法吗?

4

2 回答 2

0

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

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

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

于 2012-11-05T05:27:24.340 回答
0

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

于 2012-11-05T09:24:56.877 回答