Cookie | Webプログラミング!(2021年度)

Time-stamp: "2013-05-09 Thu 13:33 JST hig"

Cookie

説明

  • クッキーの保存:setcookie("cookie name",value,有効期限(時刻, 秒単位));
  • 例:setcookie("ncookie",$n,time()+3*60); // 3分後にexpire
  • クッキー変数$_COOKIE["cookie name"]

サンプル1

サンプル1

nocookie.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

サンプル2

withcookie.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を使ってクエリパラメタが与えられなかったときの処理を書こう.

参考

このサイトのコンテンツ

QRcode to hig3.net

https://hig3.net