0

PHP での Cookie の使用法を理解するのに苦労しています。次のコード スニペットを検討してください。

 public function preExecute() {

setcookie("testCookie", "Hello123", time() + 31536000, "/", WebServer::getServerName());
echo "Before Value of cookine in decommission::".$_COOKIE["testCookie"];
setcookie("testCookie", "Hello456", time() + 31536000, "/", WebServer::getServerName());
echo "After Value of cookine in decommission::".$_COOKIE["testCookie"];
}

このコードに期待している出力

廃止前のクックインの値:: Hello123

廃棄時のクッキンの値の後:: Hello456

しかし、上記のコード スニペットの出力は次のとおりです。

廃止前のクックインの値:: Hello456

廃棄時のクッキンの値の後:: Hello456

誰かが私に作業を説明してくれれば幸いです。私はインターネットで利用可能なリソースを調べましたが、まだ明確ではありません.

前もって感謝します。

4

2 に答える 2

3

$_COOKIE現在のリクエストで受け取った Cookie を保持します。setcookie応答で Cookie を設定するために呼び出すと、自動的に更新されません。設定した Cookie は、Cookie がサーバーに送り返される次のsetcookieリクエストでのみ表示さ$_COOKIEれます。

つまり、2 番目の Cookie が最初の Cookie を上書きするため、後の値のみがサーバーに送り返されます。すでにページを何度か更新したので、Cookie が表示されていると思います。Cookie を消去してこれを再度実行すると、最初の試行では出力が表示されませ$_COOKIEsetcookie

于 2012-09-21T11:23:52.720 に答える
0

この使用方法を変更したくない場合は、セッションを使用してください。$_SESSION はグローバル配列です。どこからでもアクセスでき (クラス内、関数内)、すぐに使用できます (次のリクエスト/ページの読み込みを待つ必要はありません)。

于 2012-09-21T11:41:36.150 に答える