2

PHP での Cookie の作成に関して、「setcookie」の「expire」パラメーターを使用することと、単に Cookie を「」に設定することの違いは何ですか? 言い換えれば、私は情報を収集している Cookie を持っています。ある時点で、このすべての情報を取得して送信し、その後、基本的に Cookie を破棄したいと考えています。(私の理解では) Cookie はクライアント側に保存されるため、私のオプションは Expire または "" に設定されています。私が読んだことから、「Expire」はCookieを0に設定するだけなので、値に関してだけです。int 0 または空の文字列?

ここで尋ねられた元の質問を拡張することについての質問も。AKA 投稿した質問があり、その後同様の質問をしたい場合、元の質問を編集してこの新しいセクションを追加するか、新しい質問を開始しますか (ここで行ったように)?

4

4 に答える 4

2

Cookie を設定すると、クライアント ブラウザに保存されます. 有効期限パラメータを設定すると、Cookie はクライアント コンピュータから指定された時間後に期限切れ (削除) になります. Cookie を 0 に設定すると、Cookie は値とともにクライアント ブラウザに残ります. 0.

于 2013-05-09T21:52:53.790 に答える
1

値を "" に設定すると、まさにそれが実行されます。Cookie は引き続き有効ですが、値は空白です。これは、後でその Cookie を使用する悪意のあるコードへの扉を開くため、悪い習慣です。Cookie の有効期限が切れると、有効期限が過去のある時点に設定され、クライアント ブラウザーで Cookie を使用できなくなります。

有効期限が過去のある時点に設定されている場合、Cookie は「破棄」されます。その時点で、クライアント ブラウザはそれらを無視します。

于 2013-05-09T21:50:39.453 に答える
0

「Expire」の意味がわかりませんが、setcookie の 3 番目のパラメーターを参照している場合は int にする必要があります。

これにより、ブラウザを閉じると Cookie が削除されます

setcookie($cookie_name, $value, 0, {$path});

と同じsetcookie($cookie_name, $value);

これにより、Cookie が保持されるまで保持されます。

$keep_cookie = 60*10; //10 minutes
setcookie($cookie_name, $value, time()+$keep_cookie, {$path});
于 2013-05-09T21:56:18.240 に答える
0

重要な部分は、サーバーへの HTTP リクエストが作成されていない (クリックがないなど)場合でもCookie の有効期限が切れるということですが、手動で空に設定すると、リクエストの実行中にのみ発生します。

この意味は

  • 期限切れの Cookie は、リクエスト間で単に「消える」だけです
  • 有効期限はクライアントで発生します。つまり、悪意のあるクライアントやバグのあるクライアントは、有効期限を誤って尊重します (またはまったく尊重しません)。

つまり、サーバーとクライアントの間の責任の異なる分配について話しているのです。

于 2013-05-09T21:54:10.310 に答える