麻辣家族討論版版's Archiver

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

5-1-2 自表單取得資料

[color=DarkRed][size=4][b]5-1-2   自表單取得資料[/b][/size][/color]
<form> 標籤的 method (傳輸方式)屬性值若為「Post」:『post』代表我們按下『傳送』按鈕後,瀏覽器將不會立即主動的將資料傳給伺服器,而會等候伺服端來讀取資料並加以處理,也就是當我們按下『傳送』按鈕後,表單中的資料不會附在網址之後:
[attach]5510[/attach]
圖5-5  使用Post方法傳送資料。

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

若是表單以「Post」方式傳遞欄位資料,則我們在接收資料時就必須改用「$_POST[“表單欄位名稱”]」的方式來取得參數資料:(go1.php)[code]<?
$name=$_POST["name"];
$email=$_POST["email"];
$memo=$_POST["memo"];
if ($name=="" || $email=="" || $memo=="")
//….略
?>[/code]若,我們在接收資料時使用「$_POST[“表單欄位名稱”」的方式來取得參數資料,那資料的傳遞就一定要透過表單了,我們不可以在瀏覽器的網址中直接輸入資料,不然接收資料的PHP程式網頁是不會顯示任何參數資料的:
[attach]5511[/attach]
圖5-6   無法自網址取得參數資料。


[color=Red]提示!![/color]
使用「Get」方式傳遞表單資料時,當我們按下傳送按鈕後,資料會立刻送出給伺服器,執行效能較高,但資料傳送量較小,最多只能傳送2K左右的資料;使用「Get」方式傳遞表單資料時,我們按下傳送按鈕後,資料不會立刻送出給伺服器,而是等待伺服器前來讀取,所以執行效能較低,但資料傳送量較大,傳送的資料不受限制。

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

如果表單的資料傳遞方式「Post」,而我又希望可以在瀏覽器的網址中直接輸入資料,那我們就可以直接使用「$_REQUEST[“參數名稱”」來接收資料,此時,分辨資料是來自QueryString或Form的任務就交給PHP Engine來處理,不過這樣會比較消耗系統資源喔!(go2.php)[code]<?
$name=$_REQUEST["name"];
$email=$_REQUEST["email"];
$memo=$_REQUEST["memo"];
if ($name=="" || $email=="" || $memo=="")
//….略
?>[/code][color=Red]提示!![/color]
「$_REQUEST」、「$_GET」、「$_POST」皆為陣列變數,而且都是字串註標索引的陣列。

頁: [1]

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