2011-01-01 6 views
0

上の特定のサーバ上の問題は、私が試してみました:PHPヘッダー( '場所:');当社のネットワーク

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

それはGoDaddyの上で動作とFirefox、IEとChromeを使って職場で自分のネットワーク上IpageをとStartlogicの両方に障害が発生しました。彼らは、Firefoxを使用している3つのサーバーすべてでPublic Libraryで働いています。私たちのIT担当者は、シスコの紛争かもしれないと考えていますが、解決できませんでした。

は、私はPHP 302がこれを解決する方法について

任意のアイデアをリダイレクトしないようにする必要があり、この共通の十分な問題です。

**私は以下のコメントに追加しました。
"出力がない状態でスクリプトを実行すると、いつもハングアップします。
GoDaddyは、他の2つは、彼らが時間外

+0

ここで実際に「失敗する」とは何ですか?コンテキスト(要求データ、要求方法など))これらの場合にこの呼び出しに? – Rob

+0

'http:// www.google.com'に通常アクセスして、ブラウザにアドレスを入力できますか? – lonesomeday

+0

はいgoogleが動作し、左下隅で待機しているため、ハングアップが失敗する可能性があります。 – geroge

答えて

3

まあ、

をあなたの質問が完全に整形式でなくなるまで行くと続けるだろう正常に動作します。つまり、少なくともエラーメッセージや悪い行為ではなく、単純な「失敗」を期待しています。

とにかく、空白のページが表示され、ヘッダーがすでに送信されているという警告が表示されないことが考えられます。これはPHPの一般的な問題です、私を信じてください。

エラーを有効にするには、php.iniを設定するか、コードによってすべてのエラーを有効にするか、PHPによって生成された警告を検査する必要があります。

ほとんどの場合、(一部のシステムで発生し、他のシステムでは発生しない)この問題は、UTF-8 BOMによって引き起こされます。これは、スクリプトの開始時に<?phpの前に表示されない3バイトです。これは通常、メモ帳やUTF-8エディターでPHPスクリプトを作成し、UTF8以外の環境でコードを実行することによって発生します(LinuxはASCIIが好きですか?)

とにかく、コンソールからのネイティブエディタ、ワードパッド、またはNotepad ++からASCIIで保存してください。

これが問題なら、解決します。これの背後にあるのは、PHPがBOMを読み取り、それをHTTPレスポンスに出力するため、HTTPヘッダーをそれ以上設定できないためです。それでおしまい。

助けてくれたらと思います。

+0

netbeansを使用していて、ini_set( 'log_errors'、0)というコードを変更しました。 ini_set( 'error_log'、 'syslog'); ini_set( 'display_errors'、 '1'); ini_set( 'display_startup_errors'、 '1');ヘッダー( '場所:http://www.google.com/');死ぬ();/*まだハングしています*/ – geroge

+0

ローダーインジケーターを有効にして** HANGS **であれば、私の答えは間違っているかもしれません...... –

+0

ハングよりも良い言葉がありますか?とにかく、私は出力なしでスクリプトを実行するたびにハングします。 – geroge

0

正しい完全なHTTPヘッダーを作成しようとしましたか?

上記のヘッダーは非常に小さく、ステータスコードがありません.HTTPレスポンスの最小値でなければなりません。ほとんどのクライアントとプロキシは、あなたが意味することを推測し、正しい応答を生成すると役立ちます。あなたはUTF-8を使用している場合 (BOMに関する答えは別の有力候補である)

header('Status: 301 moved permanently'); 

おそらく

header('Content-type: text/html; charset=utf-8'); 

のように、適切なの3xxエラーを選択してください。

関連する問題