LoginSignup
0
0

More than 1 year has passed since last update.

【PHP】同じ名前のcookieが重複して登録される不具合修正

Last updated at Posted at 2022-09-03

同ドメインで同名のcookieが2つ登録されてしまい、原因を調査しました。

cookieの判定条件

cookieは以下の3つのパラメータで差別化されています。

  1. 名前 (cookieのキー名)
  2. ドメイン (cookieを使用するドメイン)
  3. パス (cookieが使用できるパス)

今回、名前とドメインは同じでしたが、パスが違ったため別のcookieと判断されて重複登録されていました。

重複登録されないようパスを指定

複数個所で同一のcookieを作成・更新する処理がある場合、重複登録されないようにパスを指定する必要があります。

今回はPHPとjavascriptでパス指定の方法を紹介します。

※例では「/」以下でcookieが使用できるようパスを設定。

【PHPの場合】

phpファイル
setcookie('name', 'value', [
    'path' => '/',
]);

※なお、setcookieのオプションに「'httponly => true'」が設定されていると、javascriptなどhttp通信以外の方法でcookieの値をいじれなくなるので注意。

【javascriptの場合】

jsファイル
document.cookie = 'name=' + encodeURIComponent('value') + ';path=/';
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0