たとえば、私のフォームでは暗号化された文字列 sha1('1') 356a192b7913b04c54574d18c28d46e6395428ab を投稿しました。
次に if($_POST['s']=='356a192b7913b04c54574d18c28d46e6395428ab')
なぜ false と判定されるのでしょうか?
echo $_POST['s'] も 356a192b7913b04c54574d18c28d46e6395428ab です。 。
$_POST['s'] がその値であるかどうかをよく確認してください
$_POST['s'] がその値であるかどうかをよく確認してください 私が正しかったです。 。 。 BAEで試してみました。 。理由が全く分かりませんでした。 。 。
var_dump() を使用して、スペースと改行が含まれているかどうかを確認することもできます
var_dump() を使用して、スペースと改行が含まれているかどうかを確認することもできます
いいえ。 。また、trim() を使用してフィルタリングしました。 。見てみるのを手伝ってくれませんか。 http://hole.icnu.me/t1.php
彼の var_dump() によって出力された引用符 + 値をコピーすると、それは true である可能性があります。
引用符を自分で入力すると false になります。 。 。だからああ? ?
コードの投稿はあなたが言った理由ではないかもしれません
コードの投稿はあなたが言った理由ではないかもしれません
t.php のコード。 。
<?phpecho $_POST['set'].'<br>';var_dump($_POST['set']);if($_POST['set']=="f45918a75f152c9ce0b58043d5e5d7f22358665c")echo 'qw';?>
コードを投稿してください。それはあなたが言った理由ではないかもしれません
それはエンコーディングの問題であるはずです。エンコードを変換すればOKです。 。
コードを投稿すると、あなたが言った理由ではないかもしれません
それはコーディングの問題であるはずです。エンコードを変換すればOKです。 。
違う、違う。 。 。理由は私にもわかりません。 。 。
もう一度説明します。 。 。
sha1暗号化後の文字数は40文字のはずなのに
投稿が来た後、なぜ43文字になってしまったのでしょうか? 。 。 ?
次のページの再暗号化も 40 文字です。 。
ただし、ポインタを直接指定した場合、暗号化された文字列も 43 文字になります。 。 。
なぜですか?
var_dump() によって投稿されたデータ
string(43) "?356a192b7913b04c54574d18c28d46e6395428ab"
var_dump(sha1('1'))
string(40) "356a192b7913b04c54 d18c28d46e6395428ab"
var_dump('356a192b7913b04c54574d18c28d46e6395428ab')
string(43) "? 356a192b7913b04c54574d18c28d46e6395428ab"
echo Pack('H*', $_POST['set']); して結果を確認します
You echo Pack('H*', $_POST['set']); して結果を確認します
ごめんなさい、間違えました!
次のようにします:
print_r(unpack('H*', $_POST['set']));
申し訳ありませんが、間違えました。
このように:
print_r(unpack('H*', $_POST['set']));
Array ( [1] => efbbbf333536613139326237393133623034633534353734643138633238643 436 65363339353432386162 )
配列 ( [1] => efbbbf33353661313932623739313362303463353435373464313863323864343665363339 35343238 6162)
この efbbbf は utf-8 の BOM ヘッダーです。 43665363339353432386162 )
該当するファイルの BOM ヘッダーを削除します。それは
ありがとう~~