Light STUDY vol.3 ~クッキー~

Light Web社員の3号(サンゴウ)です。
「Light STUDY」は私3号が主にPHP等を勉強した内容を月1でご紹介するコーナーです!

今回はクッキーについて、クッキーの発行・受け取り方法についてご紹介します。

クッキーとは

クッキー(Cookie)とは、 サーバが発行したデータを、ブラウザ側の所定の位置に保存する仕組みのことです。

☆ブラウザ【要求】→webサーバ【実行】→【クッキーを発行または参照】→【応答】

ブラウザは受け取ったクッキーデータを保存しておきます。 ブラウザは次回要求時に、受け取ったクッキーをサーバに提示します。サーバ側では、以前アクセスしてきたブラウザかどうかを特定します。

クッキーの発行

PHPでクッキーを発行するには「setcookie()関数」を使います。正常に発行されたらtrueを、失敗したらfalseを返します。
第三引数に有効期限を設定すると、ブラウザを終了しても期限が切れるまで値が保存されます。設定しないときは、ブラウザを終了すると無効になります。

例:

<?php setcookie( 'val', 100, time()+60 ); ?>

クッキーの削除

必要のないクッキーは有効期限を過去の時間にして削除します。

例:

<?php setcookie( 'val', "", time()-60 ); ?>

クッキーの受け取り

ブラウザからサーバに送られたcookie情報は、スーパーグローバル変数「$_COOKIE」で受け取ります。

$getval = $_COOKIE[ 'val' ];

クッキー情報が送られなかったときは、$getvalの値はNULLになります。

クッキーの発行・受け取りの例

●cookie.php(ページ1)

<?php setcookie( 'val', 100 ); ?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>クッキーの発行・受け取り ページ1</title>
</head>
<body>
<?php
$getval = isset( $_COOKIE['val'] ) ? $_COOKIE['val'] : "(なし)"
print "ページ1の値は $getval です。\n";
?>
<p><a href="cookie2.php">ページ2へ</a></p>
</body>
</html>

「isset()関数」は、$_GETや$_POSTで得られるフォームデータの受け取りの際、値があるかどうかを判定する関数です。

●cookie2.php(ページ2)

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>クッキーの発行・受け取り ページ2</title>
</head>
<body>
<?php
$getval = isset( $_COOKIE['val'] ) ? $_COOKIE['val'] : "(なし)"
print "ページ2の値は $getval です。\n";
?>
<p><a href="cookie.php">ページ1へ</a></p>
</body>
</html>

ページ1の値は (なし) です。
ページ2へ

ページ2の値は 100 です。
ページ1へ

ページ1の値は 100 です。
ページ2へ

ページ1に訪れることでクッキーが発行されますので、ページ2に移動すると値があるとみなされ「100」と表示されます。
クッキーが発行された状態ですので、ページ1に戻っても値は「100」と表示されたままになっています。

クッキーを利用したサイトを作る際はぜひ参考にしてください😊

参考:

PHPの絵本 第2版 Webアプリ作りが楽しくなる新しい9つの扉
株式会社アンク
翔泳社
売り上げランキング: 120,695

♪・*:.。. .。.:*・♪゚・*:.。. .。.:*・♪゚・*:.。. .。.:*・♪゚・*:.。. .。.:*・♪

Light Webからのお知らせ

ライトウェブはプライバシーマークを取得しました!
今までも個人情報を取り扱う案件に携わって参りましたが、
より安心してお任せいただけるようになりました。
今後ともライトウェブをよろしくお願い致します!

♪・*:.。. .。.:*・♪゚・*:.。. .。.:*・♪゚・*:.。. .。.:*・♪゚・*:.。. .。.:*・♪

次回もお楽しみに!😉