[目次]
Cookie | Webプログラミング!(2021年度)
Cookie
説明
- クッキーの保存:
setcookie("cookie name",value,有効期限(時刻, 秒単位)); - 例:
setcookie("ncookie",$n,time()+3*60); // 3分後にexpire - クッキー変数
$_COOKIE["cookie name"]
サンプル1
サンプル1nocookie.php
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Test without cookie</title>
</head>
<body>
<?php
$animals=array("いぬ","さる","ペンギン");
if( isset($_POST["mode"]) && $_POST["mode"]==1){
echo "<p>あなたの選択は". $animals[$_POST["n"]] ."</p>";
}
?>
<hr/>
<form method="post" action="<?php print($_SERVER["SCRIPT_NAME"]);?>">
<?php
for($i=0; $i<count($animals); $i++){
echo '<input type="radio" name="n" value="' .$i. '">'. $animals[$i] . "<br/>";
}
?>
<input type="hidden" name="mode" value="1" />
<input type="submit" value="送信">
</form>
</body>
</html>
サンプル2
サンプル2withcookie.php
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Test with cookie</title>
<!-- Time-stamp: "2016-04-14 Thu 09:01 JST hig" -->
</head>
<body>
<?php
$animals=array("いぬ","さる","ペンギン");
if( isset($_POST["mode"]) && $_POST["mode"]==1){
$n=$_POST["n"];
echo "<p>あなたの選択は". $animals[$n] ."</p>";
// cookie の保存
// cookie の名前(変数名) ncookie
// 変数の値 $nにはいってるあたい
// 有効期限 time() (=現在) + 3*60 秒
setcookie("ncookie",$n,time()+3*60); // 3分後にexpire
} else if( isset($_COOKIE["ncookie"])){
// cookie の読み出し
// set されていないのに読むとエラーになる
$n=$_COOKIE["ncookie"];
echo "<p>あなたの選択は". $animals[$n] ."</p>";
}
?>
<hr/>
<form method="post" action="<?php print($_SERVER["SCRIPT_NAME"]);?>">
<?php
for($i=0; $i<count($animals); $i++){
if($n==$i){
$checked='checked="checked"';
} else {
$checked='';
}
echo "<input type=\"radio\" name=\"n\" value=\"$i\" $checked> $animals[$i] <br/>";
}
?>
<input type="hidden" name="mode" value="1" />
<input type="submit" value="送信">
</form>
</body>
</html>
課題
- 九九の表を作ろう
- クエリパラメタで, 表のサイズ nxm を指定できるようにしよう.
- issetを使ってクエリパラメタが与えられなかったときの処理を書こう.