介紹如何在 PHP 中以 $_GET
與 $_POST
取得從網頁表單送出的 GET 與 POST 資料。
GET 的網頁表單適合用來處理較簡短的資料,假設我們有一張簡單的表單如下,包含了一個文字欄位、單選、多選欄位:
其 HTML 網頁原始碼如下:
<html> <body> <!-- GET 表單 --> <form method="GET" action="get.php"> 姓名:<input type="text" name="username" /><br /> 性別: <input type="radio" name="gender" value="male" /> 男 <input type="radio" name="gender" value="female" /> 女<br /> 交通工具: <input type="checkbox" name="trans[]" value="car"/> 汽車 <input type="checkbox" name="trans[]" value="scooter"/> 機車<br /> <input type="submit" value="送出" /> </form> </body> </html>
若是以 GET 方式傳送的表單,在 PHP 中可以透過 $_GET
這個系統變數取得送出的資料,以下是接收表單資料的 PHP 指令稿 get.php
:
<?php $username = $_GET['username']; echo "姓名:$username<br/>"; $gender = $_GET['gender']; echo "性別:$gender<br/>"; # checkbox 會轉為陣列 $transArray = $_GET['trans']; echo "交通工具:" . join(",", $transArray) . "<br/>"; ?>
GET 的方式只能傳送少量的資料,若需要傳送較大量的資料(例如 textarea
或檔案等),則建議改用 POST 的方式。
POST 表單可以用來處理較大量的資料,而且傳輸資料的過程也比 GET 方式更為安全。以下是一個簡單的 POST 表單:
其 HTML 網頁原始碼如下:
<html> <body> <!-- POST 表單 --> <form method="POST" action="post.php"> 姓名:<input type="text" name="username" /><br /> 性別: <input type="radio" name="gender" value="male" /> 男 <input type="radio" name="gender" value="female" /> 女<br /> 交通工具: <input type="checkbox" name="trans[]" value="car"/> 汽車 <input type="checkbox" name="trans[]" value="scooter"/> 機車<br /> 詳細說明:<br /> <textarea name="descr"></textarea><br /> <input type="submit" value="送出" /> </form> </body> </html>
若是以 POST 方式傳送的表單,在 PHP 中可以透過 $_POST
這個系統變數取得送出的資料,以下是接收表單資料的 PHP 指令稿 post.php
:
<?php $username = $_POST['username']; echo "姓名:$username<br/>"; $gender = $_POST['gender']; echo "性別:$gender<br/>"; # checkbox 會轉為陣列 $transArray = $_POST['trans']; echo "交通工具:" . join(",", $transArray) . "<br/>"; $descr = $_POST['descr']; echo "詳細說明:<br/>$descr<br/>"; ?>