ホームページ > バックエンド開発 > PHPチュートリアル > ヘッダー情報を変更できない問題の解決策 (php)、modifyheader_PHP チュートリアル

ヘッダー情報を変更できない問題の解決策 (php)、modifyheader_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:05:49
オリジナル
1097 人が閲覧しました

ヘッダー情報を変更できない(php)、modifyheaderの問題の解決策

関数実行時に、エラーアドレスが最初に処理されてCookieに書き込まれ、ユーザーが直接ジャンプできるようにする統一エラープロンプト関数を作成しました。ログイン後、実行するページに移動すると、サーバーでテストするときに、ローカルでは発生しなかったエラーが表示されることがわかりました: 警告: ヘッダー情報を変更できません - ヘッダーはすでに....
によって送信されましたこの理由は明らかです。 setcookie が原因であるため、ネットで調べたところ、次のような説明がありました。 Cookie 自体には、次のような使用上の制限があります。
1. setcookie を呼び出す記述を配置する必要がある タグの前
2. setcookie を呼び出す前に、echo を使用することはできません
3. Web ページがリロードされるまで、Cookie はプログラムに表示されません
4. setcookie 関数は、データが出力される前に送信する必要がありますブラウザ
5.……
上記の制限に基づいて、 setcookie() 関数を実行すると、「インデックスが未定義」、「ヘッダー情報を変更できない - ヘッダーが既に送信されている」などの問題が発生することがよくあります。 「ヘッダー情報を変更できません - ヘッダーはすでに送信されています」というエラーを解決するには、ブラウザへのデータ出力を遅らせるために、プログラムの先頭に ob_start(); 関数を追加します。これで解決します。 ob_start() を追加したい場合、プログラムを作成した後にこれを変更するのは少し気が滅入ります。このエラーが表示されたことを知ったとき、なぜ私のローカル コンピュータではこのエラーが表示されなかったのか疑問に思いました。 PHP.ini の設定が違うと思っていましたが、違うようです...
ということで、次の文を見てください。「output starting at....」という出力があることを意味します。 setcookie の前の別の場所で、次の出力が始まり、最初の行が空白であることがわかり、その後、解決策 2:
オンラインで見つかったこの問題を解決する方法はほとんど同じです。今日、またそのような問題に遭遇しました。試してみたところ、うまくいくことがわかりました。
php.ini 設定ファイルを見つけて、output_buffering という項目を検索し、その値を off から on に変更し、Apache を再起動すれば問題ありません。

追記: SAE で PHP アプリケーションを作成するときに、jump と setcookie がサポートされていない場合、この状況も発生することがあります。 SAE 開発文書の仕様に従う必要があります。

http://www.bkjia.com/PHPjc/962050.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/962050.html技術記事ヘッダー情報を変更できない問題の解決策 (php)、modifyheader 関数の実行時に、最初にエラーアドレスが処理されて Cookie に書き込まれる統一されたエラープロンプト関数を作成しました。
関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート