0

次のエコーが、output_buffering を使用せずに header("Location: index.html") を使用する代わりになるかどうかを知りたかった

echo "<script type='text/javascript>window.location = 'index.html';</script>";

おそらく本体でリダイレクトしたい場合がありますが、上記はうまく機能しますか、それとも output_buffering オプションと user header() だけを有効にする価値がありますか?

4

4 に答える 4

2

header() を使用するだけです。これが正しい方法です。

ただし、出力バッファリングを使用する必要はありません。「本文」文字列を作成し、変数に入れます (内容をエコーし​​ないでください)。次に、必要に応じてヘッダーを使用します。そして、スクリプトの最後の行で、ボディ変数をエコーし​​ます (ヘッダーでリダイレクトしなかった場合)

于 2013-06-27T00:34:34.967 に答える
1

header()ユーザーが表示しているページを定義します。出力バッファリングを使用すると、以前の出力バッファが強制的に無視されるため、効率的なリダイレクト方法とは見なされません。だから、ここに私の提案があります

  1. 唯一のターゲットが redirectである場合は、headerステートメントを実行する前に何も出力しないようにしてください。この場合headerは適切です。

  2. ページを表示する必要があり、ユーザーの対話性に基づいて別のページにリダイレクトする必要がある場合は、JavaScript リダイレクトを使用します。

于 2013-06-27T00:39:38.050 に答える
0

ヘッダーを使用すると、画面への出力を開始できないことに注意してください。それ以外の場合、ヘッダーは機能しません。JavaScript がオフになっていると、JavaScript バージョンは機能しません。個人的には、ヘッダーの方が安全なオプションだと思いますが、個人的な意見に依存する可能性があると思います!

于 2013-06-27T00:34:21.537 に答える