1

これは本当に奇妙です..ファイルに次のリダイレクトがあります:

header('Location: http://google.com');

うまくいきません。ページが読み込まれ、ユーザーはリダイレクトされません。ただし、次のように、その行の下に die() ステートメントを追加すると:

header('Location: http://google.com');
die('what the heck is going on here?');

その後、リダイレクトが魔法のように機能し始めます!

なぜこれが起こっているのか完全に途方に暮れており、デバッグする方法がわかりません。

誰でもこれについて何かアドバイスをもらえますか?

4

2 に答える 2

7

ロケーションヘッダーを送信した後、終了することになっています。ヘッダーを送信してもスクリプトのフローには影響しないため、その後のコードは引き続き実行されます。何か別の応答ステータス コードが設定された場合、リダイレクトはまったく行われません。

ヘッダー自体は何もしません。Location適切な 30x 応答コードと共にのみ、リダイレクトが発生します。PHP は、Locationヘッダーの送信時にこの応答コードを手動で設定しますが、コードで変更される可能性があります。

于 2012-05-26T17:54:54.383 に答える
2

おそらく、ヘッダー呼び出しの後にスクリプトが終了していません.スクリプトを終了していることを確認してください。

于 2012-05-26T17:57:16.023 に答える