$_SESSIONでセッション変数に値を保存

$_SESSIONはPHPの定義済み変数(スーパーグローバル変数)の1つで、セッション変数に値を保存できます。セッションがサーバ側に一時的に値を保存するのに対し、Cookieはブラウザ側に保存します。

$_SESSION['セッション変数']

セッションはsession_start();で処理を開始します。保存されたセッション変数の値はページ遷移しても呼び出し可能です。ブラウザを閉じると削除されます。

お問い合わせフォームの入力画面(index.php)で入力された値を、確認画面(confirm.php)で表示し、また入力画面へ戻った時に入力された値を表示します。

//index.php
<?php
//セッションを開始
session_start();
//初回以外ですでにセッション変数に値が代入されていれば、その値を。そうでなければNULLで初期化
$username = isset($_SESSION['username']) ? $_SESSION['username'] : NULL;
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<body>
<p>お問い合わせフォーム:入力</p>
<form method="post" action="confirm.php">
<p>お名前:<input type="text" name="username" size="15" value="<?php echo $username; ?>"></p>
<input type="submit" value="確認画面へ">
</form>
</body>
</html>
//confirm.php
<?php
//セッションを開始
session_start();
//POSTされたデータをセッション変数に保存
$_SESSION['username'] = $_POST['username'];
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<body>
<p>お問い合わせフォーム:確認</p>
<p>お名前:<?php echo $_POST['username']; ?></p>
<p><a href="index.php">入力画面へ戻る</a></p>
</body>
</html>
タイトルとURLをコピーしました