0

2つのCookieを設定するスクリプトがあります。

$month = time() + 60 * 60 * 24 * 30;
setcookie('id', $id, $month, '/');
setcookie('auth', $auth, $month, '/');
header('Content-Type: text/html; charset=utf-8');
print('<html><body>...etc....');

これはうまく機能しますが、一部のユーザーは、iframeを介してスクリプトにアクセスするページ(ソーシャルネットワーク)に応じて、いくつかのIDを持っています。

複数のIDを持つユーザーは問題ありません。しかし、私の問題は、その人に自分のCookieを確認するように依頼すると、idおよびauthと呼ばれるいくつかのCookieがあることを報告することです。そして、私もそれを再現することができます。

そして、私は実際には常に1つのIDと1つの認証Cookieがあることを期待していました。

ここで何ができますか?

新しい値でsetcookie('id'、...)を呼び出すと、古い値が置き換えられませんか?

ありがとうございました!アレックス

4

1 に答える 1

1

Cookie は KV スキーム (キー = 値) の概念に基づいており、キーは一意の識別子として機能します。

の 3 つの主要なエフェクターは次のsetcookieとおりです。

  • 作成
    • でクッキーを作成しますsetcookie("id","value")
  • 読んだ
    • でクッキーを読む$_COOKIE["id"]
  • アップデート
    • でクッキーを更新しますsetcookie("id","new value")
  • 消去
    • 有効期限を過去に設定して削除setcookie ("TestCookie", "", time() - 10);

はい、あなたの質問は正しいです。Cookie の状態を抑止する可能性のある他の要因を確認する必要があります。

于 2011-02-20T17:32:33.353 に答える