PHPでCookieの読み込み、書き込みのコードと実行結果 (Cookieへのデータの書き込みと読み込み)

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>

解説

以下のコードでPOSTされたボタン情報を取得します。
$val = $_POST['button1'];

ボタン情報がnullか確認します。この確認で単純にページが呼ばれたのか、POSTされたためにページがリロードされたのかが判定できます。
if ($val != null) {

Cookieに書き込むデータを準備します。データはPOSTされたtextBox1の内容とします。タイムアウトは10日間とします。
$data = $_POST['textBox1'];
$timeout = time() + 10 * 86400; //現在の時刻 + 10日 *(24時間 * 60分 * 60秒)
$path = '/';
$domain = '';

setcookie()関数を呼び出しCookieに情報を書き込みます。データの名前は'MyData001'とします。
setcookie('MyData001', $data, $timeout, $path, $domain);

ページをリロードします。setcookie()関数を呼び出しただけでは$_COOKIE変数には値が設定されないためページをリロードします。
header("Location: " . $_SERVER['PHP_SELF']);

POSTによりページがリロードされなかった(通常のページアクセス)の場合は$COOKIE変数から'MyData001'の値をページに表示します。
echo($_COOKIE['MyData001']);

実行結果

Cookie書き込み前

PHPでCookieの読み込み、書き込みのコードと実行結果 (Cookieへのデータの書き込みと読み込み):画像1

Cookie書き込み後 (ボタン押下後)

PHPでCookieの読み込み、書き込みのコードと実行結果 (Cookieへのデータの書き込みと読み込み):画像2
AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2011-01-27
Copyright © 1995–2025 iPentec all rights reserverd.