0

txtファイルの内容がユーザーの入力と同じかどうかを確認するためにphpスクリプトを作成しました。それが正しいかどうか、そしてそれがelseに送信されていないかどうかを確認するために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";
}
?>

何か案は?

4

2 に答える 2

0

これらは初期化されていない変数であるため、何も入力しないと、trueのif(false == false)が得られます。

これは、phpがnullをfalseとして解釈するためです。それは奇妙です、私は認めます。

変数が設定されているかどうかを確認するか、デフォルトで初期化します。

于 2012-11-05T05:27:24.340 に答える
0

安全のために、ファイルから読み取ったコンテンツに対して htmlspecialchars 関数を使用してみてください。次に、ファイルから読み取った入力とユーザー入力に対してもトリムを使用してください。

于 2012-11-05T09:24:56.877 に答える