{category}

PHP - スーパーグローバル変数

$_COOKIE

ドル アンダーバー クッキー(変数と定数

意味 クッキー情報の取得


$_COOKIEとは?

$_COOKIEは、HTTPクッキーの値を取得するためのスーパーグローバル変数です。Webサイトがユーザーのブラウザに保存した小さなデータ(クッキー)にアクセスできます。ユーザーの設定や状態を記憶するのに便利ですが、セキュリティに注意が必要です。

$_COOKIEの具体的な使い方

クッキーの設定と取得

<?php
// クッキーの設定
$themeName = 'dark';
$expiryTime = time() + (86400 * 30); // 30日間有効
setcookie('theme', $themeName, $expiryTime, '/', '', true, true);

// クッキーの取得と利用
if (isset($_COOKIE['theme'])) {
    $userTheme = $_COOKIE['theme'];
    echo "現在のテーマ設定: {$userTheme}\n";
    
    // テーマに基づいてスタイルを適用する例
    if ($userTheme === 'dark') {
        echo "<style>\n";
        echo "body { background-color: #333; color: #fff; }\n";
        echo "</style>\n";
    } else {
        echo "<style>\n";
        echo "body { background-color: #fff; color: #333; }\n";
        echo "</style>\n";
    }
} else {
    echo "テーマが設定されていません。デフォルトのテーマを使用します。\n";
}

// クッキーの削除
// setcookie('theme', '', time() - 3600, '/'); // コメントを解除するとクッキーが削除されます

// フォームの表示
echo "<form method='post'>\n";
echo "  <select name='new_theme'>\n";
echo "    <option value='light'>ライトテーマ</option>\n";
echo "    <option value='dark'>ダークテーマ</option>\n";
echo "  </select>\n";
echo "  <input type='submit' value='テーマを変更'>\n";
echo "</form>\n";

// フォーム送信時の処理
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['new_theme'])) {
    $newTheme = $_POST['new_theme'];
    setcookie('theme', $newTheme, time() + (86400 * 30), '/', '', true, true);
    echo "テーマが {$newTheme} に変更されました。ページを再読み込みしてください。\n";
}
?>

👇出力結果

現在のテーマ設定: dark
<style>
body { background-color: #333; color: #fff; }
</style>
<form method='post'>
  <select name='new_theme'>
    <option value='light'>ライトテーマ</option>
    <option value='dark'>ダークテーマ</option>
  </select>
  <input type='submit' value='テーマを変更'>
</form>

この例では、$_COOKIEを使用してユーザーのテーマ設定を管理しています。まず、'theme'という名前のクッキーを設定し、ユーザーのテーマ選択を保存します。その後、$_COOKIEからテーマ設定を読み取り、それに基づいてページのスタイルを動的に変更します。また、ユーザーがテーマを変更できるフォームも提供しており、新しい選択がPOSTされた場合にクッキーを更新します。このように、$_COOKIEを使用することで、ページをリロードしても持続するユーザー設定を簡単に実装できます。

$_COOKIEに関するよくある質問

Q. $_COOKIEの主な用途は?
A. $_COOKIEは、ユーザーの設定や状態を記憶するために使用されます。ログイン情報の保持、ユーザー設定の保存、セッション管理などに活用できます。
Q. クッキーのセキュリティリスクは?
A. クッキーは改ざんされる可能性があるため、機密情報を平文で保存すべきではありません。また、HttpOnly フラグを使用してJavaScriptからのアクセスを制限するなど、適切なセキュリティ対策が必要です。
Q. クッキーの有効期限は設定できますか?
A. はい、setcookie()関数を使用してクッキーを設定する際に有効期限を指定できます。例: setcookie('name', 'value', time() + 3600); // 1時間有効

$_COOKIEが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPの$_COOKIEや__FILE__、$_SERVER、__TRAIT__、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

__FILE__

現在のファイルのパス

種類: マジック定数

$_SERVER

サーバー情報の取得

種類: スーパーグローバル変数

__TRAIT__

現在のトレイト名

種類: マジック定数

文字列キー

連想配列で要素を識別するための文字列

種類: 連想配列

function

特定の処理をまとめる

種類: 関数の定義