Top > PHP > 値の受け渡し


値の受け渡し方法

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
      // 有効期限を1週間後に設定した例
      setcookie('name', 'sanachan', time() + 3600 * 24 * 7); 
    ?>
  • 受け取り側(クライアント→サーバ)
      0
      1
      2
    
    <?php
      $name = $_COOKIE['name'];
    ?>

リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 13 May 2011 00:21:06 JST (2688d)