{category}

PHP - クッキー

setcookie()

セット・クッキー(Web開発とセキュリティ

意味 クッキーを設定する関数


setcookie()とは?

setcookie()は、ウェブブラウザにクッキーを送信するPHPの関数です。ユーザーの設定や好みを記憶するのに使われます。

setcookie()の具体的な使い方

ユーザー設定の保存と読み込み

<?php
// クッキーを設定
function setUserPreference($theme) {
    setcookie('user_theme', $theme, time() + 30 * 24 * 60 * 60, '/', '', true, true);
}

// クッキーから設定を読み込む
function getUserPreference() {
    return isset($_COOKIE['user_theme']) ? $_COOKIE['user_theme'] : 'light';
}

// ユーザーの設定を保存(例:ダークモード)
setUserPreference('dark');

// ページ読み込み時に設定を適用
$userTheme = getUserPreference();

echo "現在のテーマ設定: {$userTheme}<br>";

// テーマに応じて異なるスタイルを適用する例
if ($userTheme === 'dark') {
    echo "<style>body { background-color: #333; color: #fff; }</style>";
} else {
    echo "<style>body { background-color: #fff; color: #333; }</style>";
}

echo "このページはユーザーの好みに合わせて {$userTheme} モードで表示されています。";
?>

👇出力結果

現在のテーマ設定: dark
このページはユーザーの好みに合わせて dark モードで表示されています。

この例では、setcookie()を使用してユーザーのテーマ設定(ライトモードまたはダークモード)をクッキーに保存しています。getUserPreference()関数でクッキーから設定を読み込み、ページの表示に適用しています。クッキーの有効期限は30日に設定され、セキュアでHTTPOnlyのフラグが設定されています。これにより、ユーザーが次回サイトを訪れた際も、選択したテーマが適用されます。

setcookie()に関するよくある質問

Q. クッキーの有効期限の設定方法は?
A. setcookie()の第3引数で有効期限を指定できます。time() + 秒数 の形式で指定します。例えば、time() + 3600 は1時間後の有効期限を意味します。0や負の値を指定すると、ブラウザを閉じた時点でクッキーは削除されます。
Q. セキュアなクッキーの作成方法は?
A. セキュアなクッキーを作成するには、setcookie()の第6引数(secure)をtrueに設定し、第7引数(httponly)もtrueに設定します。これにより、クッキーはHTTPS接続でのみ送信され、JavaScriptからアクセスできなくなります。また、有効期限を適切に設定し、必要最小限の情報のみを保存することも重要です。
Q. クッキーの削除方法は?
A. クッキーを削除するには、同じ名前のクッキーを過去の日付で再設定します。例えば、setcookie('cookie_name', '', time() - 3600); のように設定することで、ブラウザはそのクッキーを即座に削除します。

setcookie()が学べる書籍の紹介

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

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

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」カテゴリーが追加されましました!


関連するそのほかの単語

session_start()

セッションの開始

種類: セッション管理

トークン検証

CSRFからサイトを守る方法

種類: CSRF対策

password_verify()

ハッシュとパスワードを照合

種類: パスワードハッシュ

PDO::lastInsertId()

最後に挿入された行のID取得

種類: PDO

Symfony

高性能なPHPフレームワーク

種類: フレームワーク