|
値の受け渡し方法
URL
GET リクエストを使用する
- 概要
- URL だけを使ったリクエスト方法
- シンプルに値を送信できる
- 文字数に限り (2000バイトまで) がある
- 比較的情報量が少なく、単純な値を送信するのに適している
- 使い方
- 受け渡す php ファイルへの URL の後ろに、? をつける
- 必ず名前=値の書式とする
- スラッシュ / は %2F に置換する
- 複数のパラメータを渡す場合は、& で繋ぐ
- 例
- 送り側
0
| | <a href="./update.php?name=sanachan&game=drummania">Update</a>
|
- 受け取り側
0
1
2
3
4
5
6
7
8
| | <?php
$name = $_GET['name'];
$game = $_GET['game'];
if (!$name) {
echo "<b> error: cannot get name.</b><br>\n";
}
?>
|
フォーム(form)
POST リクエストを使用する
- 概要
- クエリストリングを使わない
- 主に HTML のフォームを使う
- ユーザが入力した値を送信する時に使う
- 情報量が多い場合に適している
- 使い方
- HTML のフォームを使う
- form タグの method="post" で POST リクエストであることを明示
- どこに対するリクエストなのかを action="./update.php" で指定
- ユーザが Update ボタンをクリックすれば、action で指定した URL にリクエストが送信される
- 例
- 送り側
0
1
2
3
4
5
6
7
8
9
10
11
12
| | <html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Top Page</title>
</head>
<body>
<form method="post" action="./update.php">
<input type="text" name="name">
<input type="text" name="game">
<input type="submit" value="Update">
</form>
</body>
</html>
|
- 受け取り側
0
1
2
3
| | <?php
$name = $_POST['name'];
$game = $_POST['game'];
?>
|
セッション(session)
SESSION を使用する
- 概要
- サーバーとクライアント間で継続した通信を行うために必要な機能
- セッション機能は、クッキー機能を利用している
- PHP はセッション変数 $_SESSION の値をサーバー上のファイルに保管
- PHP の session_start() は、ブラウザから送られてくるクッキーの値をもとに、
どのクライアントかを特定し、そのクライアント専用のセッション変数を復元
- 使い方
- $_SESSION というスーパーグローバル変数に値を格納
- $_SESSION に値を格納すると、同一セッション内で値を共有できる
- 使い終わったら初期化して削除する
- 例
- セッションの開始
0
1
2
| | <?php
session_start ();
?>
|
- セッション変数に格納、参照
0
1
2
3
| | <?php
$_SESSION['name'] = 'sanachan';
$name = $_SESSION['name'];
?>
|
- セッションの終了
0
1
2
3
| | <?php
$_SESSION = array();
session_destroy ();
?>
|
クッキー(cookei)
COOKEI を送信する
- 概要
- クライアントに値を保存するには setcookie 関数を使う
- スーパーグローバル変数 $_COOKIE が用意されている
- $_GET や $_POST 同じ扱い
- 使い方
- クッキーの名前、値、有効期限の順で指定する
- 有効期限はタイムスタンプで指定
- タイムスタンプは 1970/1/1からの経過秒数で、time() 関数などで得た現在時刻に必要秒数を加えた数値を指定する
- 例
- 送り側(サーバ→クライアント)
0
1
2
3
| | <?php
setcookie('name', 'sanachan', time() + 3600 * 24 * 7);
?>
|
- 受け取り側(クライアント→サーバ)
0
1
2
| | <?php
$name = $_COOKIE['name'];
?>
|
|
|