hp 関数 setcookie() がエラーを報告します: 警告: header_PHP チュートリアルを変更できません
今日、PHP 関数 setcookie() を使用して値を設定すると、次のプロンプトが表示されました。 警告: すでに送信されたヘッダー情報を変更することはできません。すぐに gg に問い合わせて、N 個の解決策を見つけました。皆さんのお役に立てれば幸いです。
仕事を終えようとしたとき、PHP ディスカッション グループの友人が Cookie の設定について話しているのを見ました。コードを聞いてみたら、その理由が分かりました!エラーを報告する
警告: ヘッダー情報は変更できません – ヘッダーはすでに cookie1.php の 5 行目 (cookie1.php:4 で開始された出力) によって送信されています
ob_start();
setcookie("ユーザー名","ソン・ヤンビン",time()+3600);
echo "ユーザー名は:".$HTTP_COOKIE_VARS["ユーザー名"]." ";
echo "ユーザー名は:".$_COOKIE["ユーザー名"]." ";
print_r($_COOKIE);
?>
警告: ヘッダー情報は変更できません - ヘッダーは既に送信されていますエラーの原因
phpプログラムの先頭に追加しました
header("キャッシュ制御:キャッシュなし、再検証が必要");
その後、ページ上に上記のエラーが表示され、N情報を読み込んでも結果が出ませんでした。今日、php.ini の設定に問題があることに偶然気づきました。php.ini ファイルが C:windows
にありました。
Output_buffering のデフォルトはオフです。今は4096に設定したらOKです。
プロンプト表示エラーと、(日付 + エクスポートされたファイルの数) をファイル名として使用できないというエラー メッセージが表示される問題を解決するために使用されます。
setcookie 関数は、データがブラウザーに送信される前に送信する必要があります
上記の制限により、etcookie()関数では「インデックスが未定義です」「ヘッダー情報を変更できません - ヘッダーはすでに送信されています...etc.???、解決策?Q」と表示される場合が多いです。ヘッダー情報を変更できない方法 - "??????" によって既に送信されているヘッダーは、Cookie を生成する前にサーバーへのデータの出力を遅らせるため、プログラムの先頭に ob_start( );???Function?lazy? を追加できます。 br /> ob_start() 関数は、バッファを開くために使用されます。たとえば、header() 関数の前にキャリッジ リターン、スペース、ライン フィードを含む出力がある場合、「ヘッダーはすべての送信準備ができました。」 " エラー。最初に ob_start() を使用してバッファを開くことができます。PHP コードのデータ ブロックと echo() の出力はバッファに入りますが、すぐには出力されません。もちろん、バッファを開くには多くの機能がありますが、想像力を働かせてください。次のように要約できます。
ob_start(); //バッファをオープンします
echo "こんにちは" //出力
header("location:index.php"); //ブラウザをindex.phpにリダイレクトします
ob_end_flush();//すべてのコンテンツをブラウザに出力します
?>
phpinfo(); //phpinfo関数を使用します
$info=ob_get_contents(); //バッファの内容を取得して $info に代入します
$file=fopen('info.txt','w'); // ファイル info.txt を開きます
fwrite($file,$info); //info.txt に情報を書き込みます
fclose($file); // ファイル info.txt を閉じる
?>
3. 静的ページテクノロジー
?>
PHPページのすべての出力
$content = ob_get_contents();//PHP ページによって出力されたすべてのコンテンツを取得します
$fp = fopen("output00001.html", "w"); // ファイルを作成し、書き込み用に開きます
;
fwrite($fp, $content); //PHP ページのすべてのコンテンツを Output00001.html に書き込み、その後...
fclose($fp);
?>
4.コードを出力する
関数 run_code($code) {
ob_start();
評価($コード);
$contents = ob_get_contents();
ob_end_clean();
} その他 {
echo "エラー! 出力がありません";
終了();
}
$content を返す
}
PHPマニュアルを読んで理由を調べました。結論を出してください
方法 1:
PHP での Cookie の使用にはいくつかの制限があります。
1. setcookie は タグの前にある必要があります。
2. setcookieを使用する前は、echoを使用してコンテンツを入力することはできません
4. データを送信する前に、ブラウザにデータを出力する前に setcookie を配置する必要があります
上記の制限により、setcookie() 関数を使用すると、「インデックスが定義されていない」、「ヘッダー情報を変更できません – ヘッダーはすでに送信されています」などの問題が発生する可能性があります。解決策は、出力する前に Cookie を生成することです。プログラム内で実行できる内容 先頭に関数 ob_start();を追加します
ob_start: 出力バッファを開きます関数形式: void ob_start(void)
注: バッファーがアクティブ化されると、PHP プログラムからのファイル以外のヘッダー情報はすべて送信されず、内部バッファーに保存されます。バッファの内容を出力するには、ob_end_flush() または flash() を使用してバッファの内容を出力します。
方法 2:
警告の解決策: ヘッダー情報は変更できません – ヘッダーは既に送信されています… ファイルの先頭に ob_start(); を書くと失敗するという人もいます。
後で php.ini を開き、output_buffering を on に設定します。 Appache を再起動します。OK。これが解決策のようです。
特記事項: (これを読んだ後、問題が解決しました)
utf-8 エンコードを使用する場合は、UTF-8 で BOM を削除する必要があります。これは、utf-8 エンコードされたファイルには BOM が含まれており、php4 および 5 は BOM をサポートしていないためです。 BOM を削除するには、Notepad++ で開いて変換します。 (これを読んだ直後に問題が解決しました)
PHP の ob_start() を使用してブラウザのキャッシュを制御します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
