麻辣家族討論版版's Archiver

小誌 發表於 2011-4-19 09:09

5-1-1 自查詢字串取得資料

[b][size=4][color=DarkRed]5-1-1   自查詢字串取得資料[/color][/size][/b]
<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)[code]<?
$name=$_GET["name"];
$email=$_GET["email"];
$memo=$_GET["memo"];
if ($name=="" || $email=="" || $memo=="")
{
  echo "姓名或email或留言,任何一欄位不可為空白,請重新輸入";
}
else
{
  $memo=nl2br($memo);
?>
<html>
<body>
<table border=1>
<tr>
<td>留言者:<?echo $name?></td><td>Email:<?echo  $email?></td>
</tr>
<tr bgcolor=#ffffcc><td colspan=2><?echo $memo?></td>
</tr>
</table>
</body>
</html>
<?
}[/code]

小誌 發表於 2011-4-19 09:11

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


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

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供