ob_start();
setcookie("username","test",time()+3600);
echo "ユーザー名は:".$HTTP_COOKIE_VARS["username"]."n";
echo "ユーザー名は:".$_COOKIE["username"]."n";
print_r($_COOKIE);
?>
PHP ファイルにアクセスすると、警告: ヘッダー情報は変更できません - ヘッダーは既に存在しますエラーの原因は、php プログラムの先頭に header("content-type: text/html; charset=utf-8"); が追加されたため、ページに上記のエラーが表示されたことです。オンラインで情報を確認したところ、php.ini の設定に問題があることがわかり、php.ini ファイルの Output_buffering がデフォルトでオフになっていることがわかり、それをオンまたは任意の数値に変更しましたが、結果は失敗しました。結果がありません。
上記の制限に基づいて、setcookie() 関数を実行すると、「インデックスが未定義です」、「ヘッダー情報を変更できません - ヘッダーはすでに送信されています」というメッセージが頻繁に発生します。 「... などの問題」の解決策は、「ヘッダー情報を変更できません - ヘッダーはすでに送信されています」???? により、Cookie を生成する前にブラウザへのデータ出力を遅らせることです。そのため、On を追加できます。 ob_start() 関数?
ob_start() 関数は、バッファーを開くために使用されます。たとえば、header() 関数の前にキャリッジリターン、スペース、ラインフィードを含む出力がある場合、「ヘッダーはすべての送信準備ができました」というエラーが発生します。この場合、最初に ob_start() を使用できます。オープン バッファ PHP コードのデータ ブロックと echo() 出力はバッファに入り、すぐには出力されません:
//header()の前
ob_start(); / /バッファを開く echo "Hellon"; //出力
header("location:index.php") //ブラウザをindex.phpにリダイレクトします
ob_end_flush(); //すべてのコンテンツをブラウザデバイスに出力します ?>