「クッキー」は、変数のように値を同一サイト内で共有できます。Webブラウザを閉じてから、再度、サイトにアクセスしても値を取得することができます。また、ログイン情報を記憶し、再アクセス時に、自動ログインする場合に使用します。
機能概要
注意点
クッキーは、ブラウザにテキストデータとして保存されているため、パスワードやクレジットカード情報など機密情報を扱うことはやめましょう。
また、設定でクッキーを利用しないユーザーもいます。その場合、値が取得できないので注意が必要です。
プログラミングコード
-
クッキーに書き込む setcookie('uid',$txt_uid, time()+3600);
→引数は「名前」「値」「有効期限」だと考えると良い。有効期限は、秒単位です。上記の有効期限は1時間(60秒×60分)
-
クッキーを削除する setcookie('uid',$txt_uid, time()-1);
→引数の期間にマイナスすると削除。
-
クッキーから値を取得する $_COOKIE['uid'])
「cookie.php」クッキー登録/削除ページファイル
- 6行目:クッキー「$_COOKIE[‘uid’]」に値が登録されているかをチェック。登録されている場合には、変数「$txt_uid」に値を代入する。
- 11~20行目:「send」ボタンを押されたら、代入処理を実行します。
- 15行目:記憶するチェックボックスにチェックがある場合、画面で入力された内容をクッキーに値を代入します。
- 21~25行目:「delete」ボタンを押されたら、クッキーの中身を削除を実行します。
<?php
$txt_uid = "";
$chk_cookie = "";
//クッキーが登録されているかをチェック
if (isset($_COOKIE['uid'])){
$txt_uid = $_COOKIE['uid'];
}
if($_SERVER['REQUEST_METHOD'] === 'POST'){
if (isset($_POST['send'])) {
// 送信
//POSTデータの取得
$chk_cookie = $_POST['chk_cookie'];
if($chk_cookie == "1"){
//代入
$txt_uid = $_POST['txt_uid'];
setcookie('uid',$txt_uid, time()+3600); //有効期限は1時間(60秒×60分)
}
}
if (isset($_POST['delete'])) {
// 削除
setcookie('uid',$txt_uid, time()-1);
$txt_uid = "";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<p>
<h2>クッキーを記憶する</h2>
</p>
<div>uid:<?php echo $txt_uid ?></div>
<form action="cookie.php" method="post">
<p>クッキーに記憶する</p>
<input type="text" name="txt_uid" >
<input type="checkbox" name="chk_cookie" value="1">
<p><input type="submit" name="send" value="送信"></p>
<p><input type="submit" name="delete" value="削除"></p>
</form>
</body>
</html>
演習問題
- 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
- 前単元で学習した、ログインページにクッキーを組み込み、自動ログイン機能を実装してみよう。