トピックに入る前に、まず次のコードを見てみましょう。 / /localhost/test2.php?name=55So5p2l5YGa5rWL6K+V55qE5a2X56ym5Liy&age=23 アドレス、ブラウザの出力は次のようになります:
<?php$url = "test2.php?name=".base64_encode('用来做测试的字符串')."&age=23";header("Location:$url");
何が起こっているのですか? Base64_decode をデコードできません?
リダイレクトされたアドレスの暗号化された名前パラメータに注意してください。これには、「+」記号が含まれています。ブラウザのアドレス バーに「+」記号があると、プラス記号はスペースに変換されます。 Base64_decode が正しいデコード操作を確実に実行できるようにするには、次のコードに示すように、まずパラメーター内のスペースをプラス記号に置き換えます。
<?phpvar_dump(base64_decode($_GET['name']));die();
<pre class="n">string '用来做测??y??9ke??)?.,' (length=26)
著作権表示: この記事はブロガーによるオリジナル記事であり、ブロガーの許可なく複製することはできません。