HTMLコンテンツがPHPスクリプトからWebサーバーに送信された後にCookie値を設定できることを読みました。
しかし、これを使って作業していると、思ったようにクッキーを設定することができませんでした。誰かが私の矛盾を正すことができますか?
PHPは、ページのヘッダーを送信している間(つまり、コンテンツを送信する前、つまりHTML)にのみCookieを設定できます。これは、Cookieに関してHTTPプロトコルがどのように機能するかを示しています。サーバーは、Cookieを保存するためのリクエストをブラウザに送信できます。
ページの読み込み後にCookieを追加する場合は、JavaScriptを使用して追加できます。
javascript cookie( jQueryプラグインを使用するとやや簡単)を設定するか、AJAXを介してphpスクリプトに値を送信してcookieを設定することができます。または、おそらく最良のオプションとして、PHPレベルでCookieの代わりにセッションを使用することができます。アプリケーションによって異なります。
RTMを持っていないのではないかと思います。なぜなら、もしあなたがこれを見たとしたら:
setcookie()は、残りのHTTPヘッダーと一緒に送信されるCookieを定義します。他のヘッダーと同様に、スクリプトからの出力の前にCookieを送信する必要があります(これはプロトコルの制限です)。これには、タグや空白を含む出力の前に、この関数を呼び出す必要があります。
しかし、あなたの場合、もっと重要なことは、これです:
ノート:
出力バッファリングを使用して、この関数を呼び出す前に出力を送信できます。ブラウザへのすべての出力のオーバーヘッドは、送信するまでサーバーでバッファリングされます。これを行うには、スクリプトでob_start()とob_end_flush()を呼び出します。