PHPの$_COOKIEとは?ユーザー情報をブラウザに保存・取得する方法
$_COOKIE は、PHPでクッキー(Cookie)に保存されたデータを取得するためのスーパグローバル変数です。
クッキーはユーザーのブラウザに一時的にデータを保存できる仕組みで、次回アクセス時にもデータを保持したいときに便利です。
クッキーの特徴
- ユーザーのブラウザに保存される
- サーバーとクライアント間で自動的にやり取りされる
- 有効期限を自由に設定できる
クッキーの設定(setcookie)
setcookie()
を使ってクッキーを設定します。※必ず HTML出力より前 に記述する必要があります。
<?php
setcookie("user_name", "太郎", time() + 3600); // 1時間有効
?>
クッキーの取得($_COOKIE)
<?php
echo $_COOKIE["user_name"]; // 太郎
?>
クッキーは一度設定してから、次のリクエストで利用可能になります。
クッキーの削除
有効期限を過去に設定することで削除できます。
setcookie("user_name", "", time() - 3600); // 削除
存在チェック
存在しないクッキーを参照するとエラーになる可能性があるので、isset()
で確認します。
if (isset($_COOKIE["user_name"])) {
echo "こんにちは、" . htmlspecialchars($_COOKIE["user_name"]) . "さん";
}
セキュリティ対策
htmlspecialchars()
でXSS対策を行う
- 必要に応じて
httponly
や secure
属性を設定する
- 重要な情報(パスワードなど)は保存しない
複数のクッキーを使う例
setcookie("theme", "dark", time() + 86400);
setcookie("lang", "ja", time() + 86400);
echo $_COOKIE["theme"]; // dark
echo $_COOKIE["lang"]; // ja
まとめ
$_COOKIE
はブラウザに保存されたクッキー情報を取得する配列
setcookie()
を使ってクッキーを設定
- 次回アクセス時から有効になる
htmlspecialchars()
や isset()
で安全に扱う
- 機密情報は保存せず、用途を限定する
$_COOKIE は「ログイン状態の記憶」や「言語・テーマの設定」など、ユーザーに合わせた体験を提供するのに便利な仕組みです。
使いすぎず、セキュリティを意識して活用していきましょう。