@blog.justoneplanet.info

日々勉強

PHPでSessionを使う

■趣旨

サンプルソースです。

■prefts.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>色の設定</title>
</head>
<body>
<form action="prefs.php" method="post">
<label>背景色
<select name="background" id="background">
<option value="black">黒</option>
<option value="白">白</option>
<option value="赤">赤</option>
<option value="青">青</option>
</select>
</label><br />
<label>文字色
<select name="foreground" id="foreground">
<option value="black">黒</option>
<option value="白">白</option>
<option value="赤">赤</option>
<option value="青">青</option>
</select>
</label><br />
<input type="submit" value="設定の変更" />
</form>
</body>
</html>

■prefts.php

<?php
$colors = array(
    'black' => '#000000',
    'white' => '#ffffff',
    'red'   => '#ff0000',
    'blue'  => '#0000ff'
);
session_start();
//session_register('bg');
//session_register('fg');
$bg_name = $_POST['background'];
$fg_name = $_POST['foreground'];
$_SESSION['bg'] = $colors[$bg_name];
$_SESSION['fg'] = $colors[$fg_name];
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>設定の登録</title>
</head>
<body>
<p>ありがとうございました。以下のように設定を変更しました。</p>
<ul>
<li>背景色:<?php echo $bg_name ?></li>
<li>文字色:<?php echo $fg_name ?></li>
</ul>
<p><a href=”prefs_demo.php”>ここ</a>をクリックすると、設定が有効になります。</p>
</body>
</html>

■prefts_demo.php

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>玄関</title>
<style type="text/css">
body {
    background-color: <?php echo $_SESSION['bg']; ?>;
    color: <?php echo $_SESSION['fg']; ?>;
}
</style>
</head>
<body>
<h1>いらっしゃいませ</h1>
<p>様々な商品を取り揃えております。</p>
<p><a href=”prefs.html”>設定を変更</a>しますか?</p>
</body>
</html>

■あとがき

  1. prefs.htmlにアクセスし、背景色と文字色を選択しprefs.phpにデータを送信
  2. prefs.phpはデータを受け取りデータを元にサーバー側の文字列をセッションにセット
  3. prefs-demo.phpでCookieからPHPSESSIDを読み出し、それに基づく値をサーバー内から読み出し背景色と文字色になる

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment