MW211 EXIT

devlog
PHP/クッキー
2012年03月25日
クッキーの設定方法と参照方法は以下のような感じ。
┌──┬───────────────────────────────────┐
│設定│setcookie('クッキー変数名', 値);                                      │
├──┼───────────────────────────────────┤
│参照│$_COOKIE['クッキー変数名']                                            │
└──┴───────────────────────────────────┘

ただし、設定されるのは、そのスクリプトが終了した時なので、
以下のような場合、設定された値はechoされない。
┌──────────────────────────────────────┐
│$変数 = '値';                                                               │
│setcookie('クッキー変数名', $変数);                                         │
│echo $_COOKIE['クッキー変数名'];  // →''                                   │
└──────────────────────────────────────┘

なので、そのスクリプトでクッキー変数の値を使いたい場合は、
設定元を(分岐して)使う必要がある。
┌──────────────────────────────────────┐
│$変数 = '値';                                                               │
│setcookie('クッキー変数名', $変数);                                         │
│echo $変数;  // →'値'                                                      │
└──────────────────────────────────────┘

ちなみに、以下のように直接代入すると、
そのスクリプト内ではクッキー変数に値が代入されているが、
実際のクッキーの中身には値は入らないので、次画面以降では値はクリアされてしまう。
┌──────────────────────────────────────┐
│$_COOKIE['クッキー変数名'] = '値';                                          │
│echo $_COOKIE['クッキー変数名'];  // →'値'                                 │
└──────────────────────────────────────┘
一瞬設定が成功したかのような錯覚に襲われるので注意が必要。
分類:PHP、注意