2015年6月10日水曜日

【PHP】Cookieを書き込むときはパス情報を意識する

Webサイトの機能拡張の案件。

既存のログインシステムがあるのでそれに合わせないといけない。

そのサイト自体はcakePHPで作るようなデータベースを持っておらず、外部のAPIでログイン機能を実装している。

調べてみると特定の名前のCookieが書き込まれていればログインであるという判断をしている。

こちらでもログインを制御するためにCookieを見たり書き込んだりしていた。

ところがうまく動かないことがある。

ブラウザでCookieを見てみると、CookieにはCookie名と有効期限だけでなく、「パス情報」が付属している。

既存のログインシステムでは、そのドメインでの一番浅い階層で Cookieを書き込んでいた。
なので、こちらでCookieを書き込むときも、パス情報を合わせる必要がある。

PHPでは、setcookie()関数の第四引数がパス指定となっている。


------------------------------------
setcookie(
    "name", //クッキー名
    "value", //値
    0,          /クッキーの有効期限
    "/"       //パス
);
------------------------------------

参考:http://php.net/manual/ja/function.setcookie.php


JavaScriptの場合:パスを指定しつつCookieを書き込む
------------------------------------
document.cookie = "name=value; path=/";
 ------------------------------------

0 件のコメント:

コメントを投稿