2011年6月13日 星期一

php 傳送GET、POST、SESSION變數

從一個PHP檔傳送變數到另一個PHP檔的方法有3種
1. GET, 利用超連結 從A網址超連結到B網址時 A會順便傳送變數到B
2. POST, 利用表單 在A網址的表單按送出 傳送到B網址
3. SESSION, 設定一個全域變數, session在任一個php檔案皆可存取


///////////////////////////////////////////////GET////////////////////////////////////////////////////////

//a.php

$a = "1";
echo "<a href=\"b.php?id=".$a."\">點我超連結到b.php</a>"; //印出超連結
/*
b.php為要超連結的網址
在網址後面加上?id=$a 為傳送get變數
id是get變數名稱(可以自己亂取)
$a就是id這個get變數的值
*/

//b.php

$b = $_GET["id"]; //存取get變數(名稱為id), 並將其值存入$b
/*
這時$b的值就是1
也就等於a.php 裡面的$a
*/

////////////////////////////////////////////POST/////////////////////////////////////////////////////////

//a.html
<form id="form1" name="form1" method="post" action="b.php">
  <input type="text" name="id" id="id" />
  <input type="submit" name="button" id="button" value="送出" />
</form>

/*
在a.html裡面有一個表單 按送出後 會將表單裡的欄位傳送到b.php
這表單有2個欄位, 一個是文字欄位(id), 一個是送出按鈕欄位(button)
*/

//b.php
$a = $_POST["id"]; //將id文字欄位使用者輸入的值 存入$a
$b = $_POST["button"];  //將button欄位的值存入$b, 所以$b="送出"

////////////////////////////////////////////SESSION//////////////////////////////////////////////////

//a.php
<?php session_start(); //開啟session的語法 要放在檔案最上方?>
<?
    $a = "freshman";

    $_SESSION["id"] = $a; //設定id這個session變數的值為$a
?>

//任一php (此檔須在執行過a.php後執行 才會抓到a.php所設定的$_SESION["id"])
<?php session_start(); //開啟session的語法 要放在檔案最上方?>
<?
    $b =  $_SESSION["id"]; //將$_SESION["id"]存入$b
    unset($_SESSION["id"]); //清空$_SESSION["id"]
    $c = $_SESSION["id"]; //將$_SESION["id"]存入$c

    /*
        $b的值為"freshman",也就是a.php中$a的值
        $c的值為null, 因為在存取前$_SESSION["id"]已被清空
    */
?>


沒有留言:

張貼留言