在PHP中,對於表單的處理是相當重要的一個功能。它用於接受使用者回送的資料,然後再伺服器端處理,再根據設定需求做對應。
其實在學習PHP之前,你必須對HTML語法有相當的認識,而form其實就是HTML中的一個標籤,在它裡頭可以有許多類型的元素。
Example:
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> |
上述的語法在瀏覽器所呈現的樣子如下:
簡單的兩個文字框,供使用者輸入文字,當使用者輸入完畢按送出,這兩個數值就會被傳遞到伺服器。
語法中的action=""雙引號裡頭填寫的是數值將傳遞的目的地,method=""則是傳遞的方式,傳遞的方式有post與get兩種,待會我們會解釋兩者的不同處。而各元素的名稱(name)則是接收頁面接收資料的重要依據。
目的地頁如下:
<html> <body> Welcome <?php echo $_POST["fname"]; ?>!<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html> |
Output:
Welcome John! You are 28 years old. |
處理頁面所做的事,是將傳遞過來的值做輸出,注意看到,因為我們表單頁面使用的傳遞方式是POST,所以在接收頁面也要使用POST做接收數值。
接著我們將針對傳遞方式來做說明,上述中有提到,傳遞方式有POST與GET,以下一一的說明。
GET
使用GET為傳遞方式,其傳送的數據資料將會呈現在網址列內,以下範例來說講解。
Example:
<form action="welcome.php" method="get"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> |
然後我們分別在欄位中填入姓名與年齡之後按送出,網址列在傳遞數值會呈現如下:
http://www.w3schools.com/welcome.php?fname=Peter&age=37 |
在?後所夾帶的就是我們剛才所輸入的數值,在傳遞給處理頁面後接收做後續動作。
Welcome <?php echo $_GET["fname"]; ?>.<br /> You are <?php echo $_GET["age"]; ?> years old! |
Output:
Welcome Peter. You are 37 years old. |
同樣的,使用GET傳遞就要使用$_GET來接收。
注意,當你使用GET為傳遞方式時,其參數會呈現在網址列,所以,當你處理到關於帳號、密碼時不要使用GET為傳遞方式。而因為使用GET會將所傳遞的數值附帶在網址列,GET傳遞的字串限制為2000個字元,這點要注意。
POST
POST在傳遞資料的過程是看不見的,它並不會像GET一樣夾帶在網址列。前面有提到GET傳遞字串限制為2000個字元,POST的話則是以傳送之資料大小為限制,php.ini參數預設最大為8MB,這個數值的最大與最小值都可以在php.ini中設定,程式開發者可以依個人需求做更動。
而POST使用上與GET相同,只是做個更動而己。
<form action="welcome.php" method="post"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> |
傳遞後的網址列:
http://www.w3schools.com/welcome.php |
POST處理頁面:
Welcome <?php echo $_POST["fname"]; ?>!<br /> You are <?php echo $_POST["age"]; ?> years old. |
在接收資料的時候,除了要相對應外,另外有一個Function可以運用在接收頁面中,像是取代$_GET、$_POST及$_COOKIE
Example:
Welcome <?php echo $_REQUEST["fname"]; ?>!<br /> You are <?php echo $_REQUEST["age"]; ?> years old. |
參考資料:
PHP與MySQL網頁設計實務/網奕出版/吳權威 編著
沒有留言:
張貼留言