2

「ヘッダーは既に送信されました」というエラーを発生させずに、ドキュメントの途中で Cookie を設定するにはどうすればよいですか? 私がやろうとしているのは、ログアウト スクリプトを作成することです (ログイン Cookie の設定が機能します...とても奇妙です。if ステートメントで囲まれているためですか?) しかし、ページ タイトルやその他の内容は既にエコーしていますこのログアウトを行う前に、ページの上部にあります。

ありがとう!

4

3 に答える 3

10

最も簡単な方法は、出力バッファリングを使用して、準備が整うまで PHP がクライアントにデータを送信しないようにすることです。

<?php
ob_start();
// your code
ob_end_flush();
?>

出力バッファリングは、バッファがフラッシュされるまで出力されたすべてのデータを保存し、一度に送信しますstartend_flush

于 2010-06-10T07:28:56.340 に答える
7

アプリケーションを 2 つの部分に分解してみてください。

まず、Cookie の設定を解除してから、結果ページでユーザーをリダイレクトします。一般的な働き方です。

また、開発でフレームワークを使用するようにしてください。これにより、スキルとコードの保守性が向上します。

于 2010-06-10T07:28:39.587 に答える
2

Cookie はヘッダーで送信され、他のすべてが送信される前に送信されます。したがって、実際にクライアント (ブラウザ) に何かを「エコー」した場合、ヘッダーも送信されています。

とはいえ、すべてのコードが実行されたら、出力をバッファリングしてすべて送信できます (ob_start()およびob_end_flush()) 。

于 2010-06-10T07:29:55.077 に答える