0

現在のプロジェクトに取り組んでいるときに、ちょっとした好奇心を見つけました。出力後にURLをリダイレクトしようとすると、それでも正常に動作します。しかし、phpマニュアルによると、それはうまくいかないはずです。

error_reporting(-1);
echo "test";
header("Location: http://www.google.com/");

エラーなしでGoogleにリダイレクトされます。それの何が問題なのですか(私のApache設定ですか?わかりません...)。クッキーなどでも動作します。

私は IE9 (オペラでもテスト済み) と Apache/2.2.21 を使用しています。

よろしくアレックス

4

3 に答える 3

1

Will & pieman の投稿のおかげで、無効化またはバイアスできない std 出力バッファーがあることがわかりました。この「問題」を修正するために、

ob_end_clean(); 

私のindex.phpの最初の行のステートメント。その原因は、元のテスト コードが失敗することです (これが予想されます)。それは確かにいいことではありませんが、必要です。あなたの誰かが「より良い」解決策を提供できるなら、私は感謝しています。

よろしくアレックス

于 2012-05-31T07:54:57.777 に答える
0

Will と Ganesh のコメントに基づいて、呼び出しob_get_status()時に出力バッファーが開いているかどうかを確認することもできます。echoその場合echo、バッファにダンプされ、すぐにクライアントに送信されません。その後header()、コンテンツが送信されていないため、エラーなしで呼び出すことができます。

于 2012-05-31T06:34:34.910 に答える
-1

PHP INI 設定により、データは出力前にバッファリングされます。次のページに正常にリダイレクトされる理由

于 2012-05-30T07:28:45.737 に答える