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>
解説
$val = $_POST['button1'];
にてPOSTされたボタン情報を取得します。
if ($val != null) {
にて、ボタン情報がnullか確認します。この確認で単純にページが呼ばれたのか、POSTされたためにページがリロードされたのかが判定できます。
$data = $_POST['textBox1'];
$timeout = time() + 10 * 86400; //現在の時刻 + 10日 *(24時間 * 60分 * 60秒)
$path = '/';
$domain = '';
Cookieに書き込むデータを準備します。データはPOSTされたtextBox1の内容とします。タイムアウトは10日間とします。
setcookie('MyData001', $data, $timeout, $path, $domain);
setcookie()関数を呼び出しCookieに情報を書き込みます。データの名前は'MyData001'とします。
header("Location: " . $_SERVER['PHP_SELF']);
ページをリロードします。setcookie()関数を呼び出しただけでは$_COOKIE変数には値が設定されないためページをリロードします。
echo($_COOKIE['MyData001']);
POSTによりページがリロードされなかった(通常のページアクセス)の場合は$COOKIE変数から'MyData001'の値をページに表示します。
実行結果
Cookie書き込み前
Cookie書き込み後 (ボタン押下後)
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-01-27