PHPの$_COOKIEスーパーグローバル変数とは?基本から使い方まで解説
はじめに
PHPのスーパーグローバル変数$_COOKIEは、HTTPリクエストとともにクライアントから送信されたCookieの情報を、連想配列として現在のスクリプトに渡すための変数です。かつては$HTTP_COOKIE_VARSという変数にも同じ情報が格納されていましたが、こちらはスーパーグローバルではなく、現在では非推奨(deprecated)となっているため使用しないようにしましょう。
Cookie(クッキー)とは?
Cookieとは、Webサーバーがクライアント(ユーザーのブラウザ)側のコンピュータに保存する小さなテキストファイルのことです。主にユーザーの追跡や状態管理のために利用されます。PHPはHTTP Cookieを透過的にサポートしており、開発者は特別な処理を意識せずにCookieを扱うことができます。
通常、CookieはHTTPヘッダーを使って設定されますが、JavaScriptを使ってブラウザ上で直接設定することも可能です。
Cookieの仕組みは以下の流れになります。
- サーバー側のスクリプトが、HTTPレスポンスと一緒にCookieをブラウザへ送信します。
- ブラウザは受け取ったCookieの情報をローカルマシンに保存します。
- 次回以降、ブラウザが同じサーバーへリクエストを送る際に、保存していたCookieの情報も一緒に送信します。
- サーバーはそのCookieの情報をもとに、ユーザーを識別することができます。
PHPにはsetcookie()関数が用意されており、この関数を使うことで、HTTPレスポンスとともにクライアントへ送信するCookieを作成できます。
setcookie() 関数の構文
setcookie(name, value, expire, path, domain, security);
パラメータの説明
- name − Cookieの名前を指定します。保存されるCookieを識別するキーとなります。
- value − Cookieに保存する値を指定します。
- expire − Cookieの有効期限を指定します。1970年1月1日00:00:00 GMTからの経過秒数で将来の時刻を指定します。
- path − Cookieが有効となるディレクトリ(パス)を指定します。
- domain − 大規模なドメインの場合に、Cookieが有効となるドメイン名を指定します。
- security − HTTPS接続でのみCookieを送信する場合は「1」を指定します。デフォルトは通常のHTTP向けに「0」となっています。
$_COOKIEを使ったサンプルコード
まずは、Cookieが既に設定されているかどうかを判定し、なければ新しくCookieをセットする例です。
<?php
if (isset($_COOKIE['username'])) {
echo "<h2>Cookie 'username' は既に設定されています。値: " . $_COOKIE['username'] . "</h2>";
} else {
setcookie("username", "Anil");
echo "<h2>Cookieを設定しました</h2>";
}
?>次に、クライアントが再度アクセスした際に、保存されているすべてのCookieを取得して表示する例です。
Cookieを取得する例
<?php
$arr = $_COOKIE;
foreach ($arr as $key => $val) {
echo "<h2>$key => $val</h2>";
}
?>実行結果
ブラウザには以下のような結果が表示されます。
username => Anil
Cookieの削除方法
Cookieを削除したい場合は、setcookie()関数を使って、すでに過ぎた有効期限の日付を指定して同じ名前のCookieを再設定します。これにより、ブラウザはそのCookieを失効させて削除します。
-
JavaScriptとPHPのCookieの違いは何?それぞれの仕組みをわかりやすく解説
JavaScriptとPHPにおけるCookieの役割 Cookie(クッキー)は、訪問者の設定や購入履歴、報酬情報などを記録・追跡するための仕組みであり、より快適な閲覧体験の提供やサイト統計の取得に欠かせない技術です。ここでは、JavaScriptとPHPそれぞれにおけるCookieの扱い方と、その仕組みの違いについて詳しく解説します。 JavaScriptのCookieとは JavaScriptでCookieを活用することは、ユーザーの好みや購入履歴などの情報を記憶・追跡し、訪問者体験の向上やサイト分析に役立てるための最も効率的な方法の一つです。Cookieはクライアント側のコンピュータ
-
HTML DOMのcookieプロパティとは?Cookieの作成・読み取り・削除方法を解説
HTML DOM cookieプロパティとは HTML DOMのcookieプロパティは、Cookieの作成・読み取り・削除を行うために使用されます。Cookieは、Webサイトがユーザー固有の情報を記録・追跡するために活用される仕組みです。 このプロパティの戻り値は文字列型で、すべてのCookieがセミコロン(;)区切りのリストとして返されます。個々のCookieは「key=value」という形式のペアで構成されています。なお、Cookieはブラウザを閉じるとすぐに削除されますが、有効期限を指定すれば一定期間保持することも可能です。 構文 cookieプロパティを設定する場合の構文は以下のと