2014年8月20日 星期三

表單中的 GET 與 POST 有什麼差別

http://blog.toright.com/posts/1203/%E6%B7%BA%E8%AB%87-http-method%EF%BC%9A%E8%A1%A8%E5%96%AE%E4%B8%AD%E7%9A%84-get-%E8%88%87-post-%E6%9C%89%E4%BB%80%E9%BA%BC%E5%B7%AE%E5%88%A5%EF%BC%9F.html

<form action="test.php" method="get">
<input name="id" type="text" />
<input type="submit" />
</form>

<form method="post" action="">
<input type="text" name="id" />
<input type="submit" />
</form>


http://www.php5.idv.tw/html.php?mod=article&do=show&shid=54

1.Submit表單
表單傳來了變數:<br> <?php if(count($_POST)>0){ foreach($_POST as $k=>$v){ echo $k."=".$v; } } ?> <br> <hr> <form action="" method="post" name="form1"><input name="submit" type="submit" value="送出"></form>
2.Submit的例子2
表單傳來了變數:<br> <?php if(count($_POST)>0){ foreach($_POST as $k=>$v){ echo $k."=".$v; } } ?> <br><br> <?php if($_POST["submit"]=="買東西"){ echo "謝謝光臨"; }else if($_POST["submit"]=="不買"){ echo "不買請走開,別礙著做生意呢!";} ?> <hr> <form action="" method="post" name="form1"><input name="submit" type="submit" value="買東西">---<input name="submit" type="submit" value="不買"></form>
3.文字欄位 text 
表單傳來了變數:<br> <?php if(count($_POST)>0){ foreach($_POST as $k=>$v){ echo $k."=".$v; } } ?> <br><br> <?php if($_POST["submit"]=="買東西"){ //如果買東西 //秀出買的東西 echo "你買了:".$_POST["item"]; ?> <br /> <?php echo "謝謝光臨"; }else if($_POST["submit"]=="不買"){ echo "不買請走開,別礙著做生意呢!";} ?> <hr> <form action="" method="post" name="form1"><br> 請輸入想買的東西:<br> <input name="item" type="text" value="奶粉"><br><br> <br> <input name="submit" type="submit" value="買東西">---<input name="submit" type="submit" value="不買"></form>
4.隱藏欄位 hidden 
表單傳來了變數:<br> <?php if(count($_POST)>0){ foreach($_POST as $k=>$v){ echo $k."=".$v; } } ?> <br><br> <?php if($_POST["submit"]=="買東西"){ //如果買東西 //秀出買的東西 echo "你買了:".$_POST["item"]; echo $_POST["bonus"]; ?> <br /> <?php echo "謝謝光臨"; }else if($_POST["submit"]=="不買"){ echo "不買請走開,別礙著做生意呢!";} ?> <hr> <form action="" method="post" name="form1"><br> 請輸入想買的東西:<br> <input name="item" type="text" value="奶粉"><input name="bonus" type="hidden" value="送任天堂wii一台+無線手把3支!"><br><br> <br> <input name="submit" type="submit" value="買東西">---<input name="submit" type="submit" value="不買"></form>
5.Checkbox的多選擇的勾選項目
表單傳來了變數:<br> <?php if(count($_POST)>0){ foreach($_POST as $k=>$v){ echo $k."=".$v; } } ?> <br><br> <?php if($_POST["submit"]=="買東西"){ //如果買東西 //秀出買的東西 echo "你買了:".$_POST["item1"]; ?> <br> <?php echo "數量 :".$_POST["unit1"]; ?><br /> <?php echo "你買了:".$_POST["item2"]; ?> <br> <?php echo "數量 :".$_POST["unit2"]; ?> <br /> <?php echo "謝謝光臨"; }else if($_POST["submit"]=="不買"){ echo "不買請走開,別礙著做生意呢!";} ?> <hr> <form action="" method="post" name="form1"> <input name="item1" type="checkbox" id="item1" value="wii"> wii <input name="unit1" type="text" id="item2"> <br> <input name="item2" type="checkbox" id="item2" value="手把"> 手把 <input name="unit2" type="text" id="unit2"> <br> <br> <input name="submit" type="submit" value="買東西">---<input name="submit" type="submit" value="不買"></form>



http://www.php5.idv.tw/html.php?mod=article&do=show&shid=54

1.GET有上傳資料量的限制,一般傳送大量的資料或者上傳檔案都不會使用GET。(但是不代表不能)
2.POST 適合用來傳送大量的資料,直接的由伺服器接收。
3.POST本身的傳送是基於最終的檔案本身再傳入相關的欄位變數,而由於指定了POST所以網址列會把GET的部份省略。





-------------教學-----------

http://myip.tw/b2ddoc/php4book/c3_php/c3-0.php

  1. 「表單」傳送資料的方式,及 PHP 相對應的接收法則

    表單送出資料的方式,主要有兩種:一是「POST」,二是「GET」。

    「POST」的方式 => 用 $_POST[] 接

    • 表單要以「POST」方式送出 => 
      method='post'
>
  • 點「送出(submit)」 這個按鈕,資料會送給 stu_save.php 的寫法 => 
    action='stu_save.php'
  • >
  • PHP 怎麼接 POST 過來的資料
    a. 設一個變數 => 例:$stu_name
    b. 用 $_POST["表單欄位名"] 取出 => 例:$stu_name = $_POST["stuName"] 

  • 「GET」方式 => 用 $_GET[] 接

    • 表單要以「GET」方式送出 => 
      method='get'
    >
  • 直接在網址列上輸入變數,傳資料給 PHP 程式,也是屬「GET」的方式
    例:
    請在網址列上輸入「http://localhost/stu_save.php? id=99&pawd=mypass
    意即:
    我們可以在 stu_save.php 內用「GET」的方式取得: 「id」、「pawd」這兩組資料。
  • 點「送出(submit)」 這個按鈕,資料會送給 stu_save.php 的寫法 => 
    action='stu_save.php'
  • >
  • PHP 怎麼接 GET 過來的資料
    a. 設一個變數 => 例:$userid
    b. 用 $_GET["表單欄位名"] 取出 => 例:$userid = $_GET["id"] 

  • 不管什麼方式,皆通吃 => 用 $_REQUEST[] 接

    • 關鍵字: $_REQUEST[]
    • 例子:
      $userid = $_REQUEST["id"]; -- 原本是用 GET 的方式
      $stuName = $_REQUEST["stuName"]; --- 原本是用 POST 的方式
    • 限制: PHP 4.1.0 以上才能使用
    表單送出的資料,一律是「字串」型態。因此, 我們在運用接收資料的變數要注意以下幾點:
    • 只要使用正確的連結符,PHP 可以自動轉換變數的資料型態!

      用「+-*╱」連結內含阿拉伯數字的字串變數 ==> 會自動改成「數值」

      例:
      $Number1 = "55";
      $Number2 = "45";
      $Num = $Number1 + $Number2; ==> 其值為 "100"

      用「.」連結內含阿拉伯數字的字串變數 ==> 會以「字串」接起來

      例:
      $Number1 = "55";
      $Number2 = "45";
      $Num = $Number1 . $Number2; ==> 其值為 "5545"

    • 但是用 JavaScript 取得表單欄位值,一定要先轉成「數值」,才可進行數值運算。(不示範)




    沒有留言: