ホームページ > php教程 > php手册 > PHPでヘッダー情報を変更できない問題の解決策

PHPでヘッダー情報を変更できない問題の解決策

WBOY
リリース: 2016-06-21 08:50:49
オリジナル
857 人が閲覧しました

プロジェクトで作業するときは、統合されたエラー プロンプト関数を準備する必要があります。関数の実行では、ユーザーがページに直接ジャンプできるように、エディターがまずエラー アドレスを処理して Cookie に書き込みます。ただし、サーバーでテストすると、ローカルでは発生しなかったエラーが表示されることがわかりました。 警告: ヘッダー情報を変更できません - ヘッダーはすでに送信されています... このようなステートメントは、明らかです。インターネット上で調べてみると、原因は setcookie であるとのことでした。 Cookie 自体には、次のような使用上の制限があります:
1. setcookie の呼び出しの記述は
タグの前に配置する必要があります。 2. setcookie
を呼び出す前に Echo を使用することはできません。 3. Web ページがリロードされるまで、Cookie はプログラムに表示されません
。 4. setcookie 関数は、データがブラウザに出力される前に送信する必要があります。

上記の制限により、setcookie() 関数を実行すると、「インデックスが定義されていない」、「ヘッダー情報を変更できません - ヘッダーは既に送信されています」などの問題が発生することがよくあります。 「ヘッダー情報を変更できません - 」エラーを解決します。この方法は、Cookie を生成する前にブラウザへのデータの出力を遅らせることです。そのため、プログラムの先頭に ob_start(); 関数を追加できます。これで解決します。 ob_start() を追加したい場合、プログラムを作成した後にこれを変更するのは少し気が滅入ります。このエラーが表示されたことを知ったとき、なぜ私のローカル コンピュータではこのエラーが表示されなかったのか疑問に思いました。 PHP.ini の設定が違うので違うのかと思いましたが、ほぼ同じです。
そこで、その後に続く「output starting at....」という文を調べました。これは、setcookie の前に別の場所に出力があったことを意味するため、output starting at に続くファイルを見つけ、最初の行が空白であることがわかりました。 解決しました!


解決策 2:
ネットで見つけたこの問題の解決策はほとんど同じでしたが、今日も同じような問題に遭遇しました。試してみたところ、うまくいくことがわかりました:
WINDOWS の C ドライブにある php.ini 設定ファイルを見つけて、output_buffering という 1 つの項目を検索し、その値を off から on に変更して、Apache を再起動します。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート