PHPでCookieの読み込み、書き込みのコードと実行結果 (Cookieへのデータの書き込みと読み込み)
PHPでCookieへの情報の読み込みと書き込みのコードと実行結果を紹介します。
概要
PHPではCookieへのデータの書き込みはsetcookie()関数を用います。また、データの読み込みは$_COOKIE変数を用います。
プログラム例
コード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$val = $_POST['button1'];
if ($val != null) {
$data = $_POST['textBox1'];
$timeout = time() + 10 * 86400; //現在の時刻 + 10日 *(24時間 * 60分 * 60秒)
$path = '/';
$domain = '';
setcookie('MyData001', $data, $timeout, $path, $domain);
header("Location: " . $_SERVER['PHP_SELF']);
} else {
echo($_COOKIE['MyData001']);
}
?>
<form method="post" action="">
<input type="text" name="textBox1" />
<input type="submit" name="button1" value="Cookie書き込み" />
</form>
</body>
</html>
解説
以下のコードでPOSTされたボタン情報を取得します。
$val = $_POST['button1'];
ボタン情報がnullか確認します。この確認で単純にページが呼ばれたのか、POSTされたためにページがリロードされたのかが判定できます。
Cookieに書き込むデータを準備します。データはPOSTされたtextBox1の内容とします。タイムアウトは10日間とします。
$data = $_POST['textBox1'];
$timeout = time() + 10 * 86400; //現在の時刻 + 10日 *(24時間 * 60分 * 60秒)
$path = '/';
$domain = '';
setcookie()関数を呼び出しCookieに情報を書き込みます。データの名前は'MyData001'とします。
setcookie('MyData001', $data, $timeout, $path, $domain);
ページをリロードします。setcookie()関数を呼び出しただけでは$_COOKIE変数には値が設定されないためページをリロードします。
header("Location: " . $_SERVER['PHP_SELF']);
POSTによりページがリロードされなかった(通常のページアクセス)の場合は$COOKIE変数から'MyData001'の値をページに表示します。
echo($_COOKIE['MyData001']);
実行結果
Cookie書き込み前
Cookie書き込み後 (ボタン押下後)
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。