ホームページ >バックエンド開発 >PHPチュートリアル >setcookie中ヘッダー情報を変更できません - ヘッダーはすでにs_PHP教程
下面是别人建议
方法 1:
PHP での Cookie の使用にはいくつかの制限があります。
1. setcookie は タグの前にある必要があります
2. setcookie を使用する前に、コンテンツを入力するために echo を使用することはできません
3. Web ページが読み込まれるまで、Cookie は表示されません。 4 、setcookie は送信する前にデータ出力ブラウザの前に配置する必要があります
...
上記の制限により、setcookie() 関数を使用すると、「未定義のインデックス」および「ヘッダーを変更できません」という問題が発生します。 「情報 - ヘッダーが既に送信されている」などの問題を解決するには、プログラムの先頭に関数 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 を削除するには、Notepad++ で開いて変換します。 (これを読んで問題が解決しました)
自分で解決してください
PHP4 および 5 は、utf-8 でエンコードされたファイルの BOM をサポートしません