Board logo

標題: 5-1-1 自查詢字串取得資料 [打印本頁]

作者: 小誌    時間: 2011-4-19 09:09     標題: 5-1-1 自查詢字串取得資料

5-1-1   自查詢字串取得資料
<form> 標籤的 method (傳輸方式)屬性值若為「Get」,則代表我們按下『傳送』按鈕後,瀏覽器將會立即主動的將資料傳給伺服器,使用這種方式並不太好!因為當我們按下『傳送』按鈕後,表單中的資料將會附在網址之後傳送到伺服器:
[attach]5507[/attach]
圖5-2   使用Get方法傳送資料。
上圖中,在「http://localhost/php/ch5/go.php」網址後端所串接的資料『?name=xxx&email=xxx&memo=xxxxx』,就是表單以「Get」方式所傳遞的欄位資料,在「?」之後的才是表單內的資料,「?」是網址與表單之間的區隔符號,在「=」左邊的是表單欄位名稱(資料輸出的識別名稱,參數名稱),在「=」右方就是「資料值(參數的資料值)」,表單欄位名稱是PHP程式讀取資料的識別依據,若有多項參數資料自表單中傳出,則各個參數資料間會以「&」符號區隔:
[attach]5508[/attach]
圖5-3  參數字串
作者: 小誌    時間: 2011-4-19 09:10

若是表單以「Get」方式傳遞欄位資料,則我們在接收資料時便得使用「$_GET[“表單欄位名稱”]」的方式來取的參數資料:(go.php)
  1. <?
  2. $name=$_GET["name"];
  3. $email=$_GET["email"];
  4. $memo=$_GET["memo"];
  5. if ($name=="" || $email=="" || $memo=="")
  6. {
  7.   echo "姓名或email或留言,任何一欄位不可為空白,請重新輸入";
  8. }
  9. else
  10. {
  11.   $memo=nl2br($memo);
  12. ?>
  13. <html>
  14. <body>
  15. <table border=1>
  16. <tr>
  17. <td>留言者:<?echo $name?></td><td>Email:<?echo  $email?></td>
  18. </tr>
  19. <tr bgcolor=#ffffcc><td colspan=2><?echo $memo?></td>
  20. </tr>
  21. </table>
  22. </body>
  23. </html>
  24. <?
  25. }
複製代碼

作者: 小誌    時間: 2011-4-19 09:11

若,我們在接收資料時使用「$_GET[“表單欄位名稱”]」的方式來取得參數資料,那資料的傳遞就不一定要透過表單了,我們亦可以在瀏覽器的網址中直接輸入資料,不過,參數名稱是必須相同的,而參數資料值則可由我們隨意變換:
[attach]5509[/attach]
圖5-4  在瀏覽器的網址中直接輸入資料。


提示!!
在PHP4.2.0版本之前,外部變數的讀取只要在變數名稱前方加上 $ 符號,即可取用變數的值;在PHP4.2.0版本之後,為了系統安全的理由,在 php.ini 裡頭的 register_globals項目被預設為 Off,所以外部變數的讀取必須使用 『$_xyz[“變數名稱”]』的方式才行,xyz 所指的包括 GET、POST、REQUEST…等。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)