クッキーを利用する

クッキーに保存するCGI
以下のPHPは上のFORM入力をクッキーとして保存します。
<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<?php setcookie("key",$_POST['email'],
  time()+(60*60*24*7)); ?>
クッキー"email"を保存しました。
</body>
</html>

クッキーとは
クッキーは、webで記憶しておきたい内容をブラウザ側で記憶をしておく機能です。クッキーの保存は、webサーバーよりブラウザ側に名前と記録期限を指定して依頼します。
 ブラウザ側では、サーバーからの求めに応じて記録したデータを返します。記録期限を過ぎたクッキー情報はブラウザ側で削除可能です。

クッキーを利用したFORM
次のcookie.php はFORM入力で key の名前で保存されたクッキーがあれば、その値を引用します。入力後、送信ボタンでクッキーの値を更新します。
<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<form method="POST" action="cookie_rec.php">
クッキー利用:
<input type="text" name="key" size="30" 
   maxlength="50"
   value="<?php print($_COOKIE['key']); ?>" />
<input type="submit" value="送信" />
</form>
</body>
</html>

先最初は名前は空欄です。入力後送信すると、クッキーに保存されます。

応用
FORMで多くの記事を入力し、送信する場合、入力にミスがあると再入力が必要になります。そこで、送信時にクッキーに保存しておきます。再度入力するとき、クッキーに保存された値が記録されている場合、その情報を利用できます。

取得
 PHPでは、クッキーの値は、連想配列 $_COOKIE[キー名]
で取得できます。

保存
 サーバーから依頼を受けた CGI がクッキーへの保存を依頼します。PHPでは
 setcookie(キー名、記憶文字列、期限)
で依頼します。期限は、依頼時刻+秒数で設定します。現在時刻は、time() で取得しますから、time() + 60*60*24*7 で7日保存します。

 クッキーの情報は、キーの名前さえわかればどのCGIでも取得できますから、重要はデータは暗号化しておく必要があります。

再度、cookie.php を立ち上げると、クッキーに保存された値が入ります(リロードが必要です)。