ホームページ  >  記事  >  php教程  >  PHP setcookie() がヘッダー情報を変更できない場合の解決策

PHP setcookie() がヘッダー情報を変更できない場合の解決策

WBOY
WBOYオリジナル
2016-06-13 12:25:00810ブラウズ

setcookie() 関数を使用すると、次のエラーが常に報告されます:
警告: ヘッダー情報は変更できません - ヘッダーはすでに送信されています...
解決策は次のとおりです:
方法 1:
PHP での Cookie の使用にはいくつかの制限があります。
1. setcookie は タグの前にある必要があります
2. setcookie を使用する前に、echo を使用してコンテンツを入力することはできません
3. Web ページが読み込まれるまで、Cookie は表示されません
4 、setcookie は
...
を送信する前にデータ出力ブラウザの前に配置する必要があります。上記の制限により、setcookie() 関数を使用すると、「未定義のインデックス」および「ヘッダーを変更できません」というエラーが発生します。情報 - ヘッダーがすでに送信されている... などの問題がある場合、解決策は、コンテンツを出力する前に Cookie を生成することです。プログラムの先頭に関数 ob_start() を追加できます。
ob_start: 出力バッファを開きます。
関数形式: void ob_start(void)
注: バッファーがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されず、内部バッファーに保存されます。バッファの内容を出力するには、ob_end_flush() または flash() を使用してバッファの内容を出力します。
方法 2:
警告の解決: ヘッダー情報を変更できません - ヘッダーは既に送信されています ...
数日前にテストするために php フォト ステッカー システムをインストールしましたエラー警告: ヘッダー情報を変更できません - ヘッダーはすでに送信されています ...
今日、openads を再度インストールしましたが、この問題は依然として発生します。怒り。長い間ネットで検索したところ、ファイルの先頭に
ob_start();
を書くという人がいましたが、失敗しました。
後で php.ini を開き、output_buffering を on に設定します。 Appache を再起動します。OK。これが解決策のようです。
特記事項:
utf-8 エンコードを使用する場合は、UTF-8 で BOM を削除する必要があります。これは、utf-8 エンコードされたファイルには BOM が含まれており、php4 および 5 は BOM をサポートしていないためです。 BOM を削除するには、メモ帳を使用して BOM を開いて変換します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。