2009-04-21 5 views
1

これにログインしようとすると、site(ユーザー:polopolo、pass:samara)の結果は空白ページになります。私は問題がヘッダーの送信であり、ouput_bufferingがphp.iniファイルにあることを知っています。別のホストで同じ問題が発生しましたが、変更したときに問題が解決しましたoutput_buffering =オン。それは現在のホスト上で動作しないと私はなぜだろうか?助言がありますか?output_bufferingとphp.iniの問題

-現在のサイトのphpinfo


編集: 問題を解決しました。私は、コードをリバース・エンジニアリングし、PHPの終了タグの後にヘッダーを送信する前にいくつかの追加のスペースを見つけました。このコードは私によって書かれたものではなく、システム全体が別のサーバですでに動作しているので、私は本質的にこのオプションを無視しました。しかし、私の同僚は私が気づいていなかったいくつかの変更を行いました...教訓は:チームワークは重要で誰もあなたのための考えをすることはできません。それでも、エラーを表示するためにすべてを試してみると、正しく表示されなかった「ヘッダーを修正できません。私は、あなたが私に指示したすべてのことをしました - エラーを表示し、ログに記録するなど...とにかく感謝します。

答えて

3

おそらく、ログインした直後にヒットしたページがリダイレクトされます。

リダイレクトを行うには、レスポンスとともにHTTPヘッダーを出力する必要があります。問題はPHPが文書の本体の出力を既に開始している場合、本文が開始されたときにヘッダーが終了したためヘッダーを出力できないことです。

出力バッファリングは、出力バッファがフラッシュされる(またはPHPが終了する)までPHPが本体の一部を出力しないようにします。これにより、いつでもヘッダーを出力することができます。

出力バッファリングをオンにすると、自分のサイト/サーバーの問題は解決されますが、別の問題は解決されません。これは実際には同じ問題ではないことを明確に示しています。

PHPエラーを記録する必要がありますので、PHPエラーログを確認してください。制限された開発者専用サイト(これはあなたではない)でこれを表示している場合は、PHP設定のdisplay_errorsをオンにして、ページのレンダリング時にエラーを表示することができます。これは一般に、攻撃者がエラーメッセージに何らかのプライベート情報を示すエラーが発生する可能性があるため、一般公開されているサーバーでは安全でない設定とみなされます。

1

私はエキスパートではありませんが、出力バッファリングが何かと関係がありません。おそらくコードにエラーがありますか?そのサイトのルートフォルダに

php_flag display_errors on 
php_value error_reporting 30719 

置き、それ、その後、任意の出力エラーがあるかどうかを確認するために再度ログインしてみてください:

は、次の内容の.htaccessファイルを作成してもらえますか?

+0

試してみました。エラーは発生しません。私はそれが、私が理解していない虚偽のヘッダーで何か誤りであると考えられているとは思わない。 tyしかし – chosta

+0

申し訳ありませんが私はより多くのヘルプができませんが、あなたは再び試してみてください7の代わりに、30719を使用して、ここでコメントが完了したら、私はそれをテストすることができます気にしない? –

+0

phpinfo()を見ても見た目の値が表示されないため、変更はないと思います(display_errorsは "On"、error_reportingは "30719") –

0

プロジェクトで作業しているときにも同じ問題が発生しました。後でphp.iniの設定ファイルに output_buffering = 4096を設定して修正しました。ローカルホストで正常に動作しましたが、ホストサーバーに置くとこのエラーが再び発生しました。ホストサーバ上で自分のphp.ini設定ファイルを使用する方法がわかりません。どんな提案も大歓迎です...