PHP vol.20

  • セッションと変数

セッションと変数

01.php

<?php
session_start();
$hensu = 180;

echo "ふつーの変数".$hensu."<br />\n";
echo "セッション ".$_SESSION['hensu']."<br />\n";

$hensu++;
$_SESSION['hensu']++;
?>
<a href="test.php">test.php</a>

test.php

<?php
session_start();
echo "ふつーの変数".$hensu."<br />\n";
echo "セッション ".$_SESSION['hensu']."<br />\n";
表示結果(ブラウザで表示したものをコピペ)

01.php

ふつーの変数1
セッション 2
test.php

test.php

Notice: Undefined variable: hensu in /〜/test.php on line 3
ふつーの変数
セッション 3
  • セッションはしばらくデータを保つことができるのでデータを受け渡すことができる。
<?php
session_start();
if (isset($_POST['money'])) {
    if (empty($_SESSION['money'])) {
        $_SESSION['money'] = 0;
        $_SESSION['list']=array();
    }
    $_SESSION['money'] = $_SESSION['money'] + $_POST['money'];
    $_SESSION['list'][] = $_POST['money'];
}
if (isset($_POST['reset'])) {
    session_destroy();
    header ("Location: ".$_SERVER['SCRIPT_NAME']);
}
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>買い物</title>
</head>
<body>
<h1>買い物アプリ</h1>
<p>買った金額を入力してください。</p>
<form method="post" action="">
<input type="text" name="money" />
    <input type="submit" value ="実行" />
    <input type="submit" name="reset" value="データをリセットする" />
</form>
<?php
    if (isset($_SESSION['money'])) {
        echo "<h2>ご購入合計</h2>\n";
        echo "<p>".$_SESSION['money']."円</p>\n";
    }
?>
<?php
if (isset($_SESSION['list'])){
    echo "<h2>買い物履歴</h2>\n";
    echo "<ul>\n";
    foreach ($_SESSION['list'] as $key => $value) {
        echo "<li>".($key+1)."回目:".$value."円</li>\n";
    }
    echo "</ul>\n";
}
?>
</body>
</html>