note、HTML 表單的 method 參數與 PHP 的接收方式必須是對應的,例如表單 method 設定用 post 傳遞資料,PHP 必須使用 $_PSOT 來接收,如果表單的 method 設定用 get 方式傳遞資料,則 PHP 就必須使用 $_GET 來接收,以下為兩種 method 的實際範例。
PHP 接收 form 表單變數傳遞範例一、透過 PHP POST 接收 form 表單變數資料
首先是 HTML FORM 表單的部分(將以下程式碼存為 form_post.html)
<form action="php_post.php" method="post">
<input type="text" name="MyName" >
<input type="submit" name="Send" value="送出表單">
</form>
呈現結果範例結果只是呈現表單的樣貌,不是真的可以送出表單,若要測試,請將以上的 HTML 表單範例程式碼複製起來,開個空白文件貼上去,並儲存成 form_post.html,後續還會用到。這裡的重點在於表單內使用了 method="post" 這樣的宣告,代表當網友按下送出表單之後,整個表單的欄位資料都會透過 post 的方式傳遞出去給 php_post.php 這支程式,而 php_post.php 將會使用 $_POST 來接收資料,HTML 表單的部分大至上就是這樣的概念,關於更詳細的欄位設計,可以參閱這一篇:HTML Form 表單設計。<input type="text" name="MyName" >
<input type="submit" name="Send" value="送出表單">
</form>
接著是 PHP 的部分(將以下程式碼存成 php_post.php)
<?php
$MyName=$_POST[MyName];
echo $MyName;
?>
PHP 的內容第一行『$MyName=$_POST[MyName];』就是 POST method 用來接收表單資料的寫法,要注意 $_POST 的英文字母都要大寫,否則會失效,第二行 echo 僅是將接收到的欄位值輸出到螢幕上而已。$MyName=$_POST[MyName];
echo $MyName;
?>
在範例一中,我們建立了 form_post.html 及 php_post.php 這兩的檔案,用瀏覽器開啟 form_post.html,然後隨便填個資料送出表單,應該會自動跳到 php_post.php 這個頁面,而且可以看到剛剛自己所輸入的文字,這樣就順利完成用 PHP 的 POST 方法接收 form 表單所傳遞的資料,稍微注意一下程式運作的結果,網址欄位應該不會有任何的改變。
想深入研究 PHP POST 方法,可以參閱這一篇:PHP $_POST Function 使用方法詳細介紹。
如果對於 PHP POST 沒有什麼問題,請繼續研究 PHP GET 方法。
PHP 接收 form 表單變數傳遞範例二、透過 PHP GET 接收 form 表單變數資料
首先是 HTML FORM 表單的部分(將以下程式碼存為 form_get.html)
<form action="php_get.php" method="get">
<input type="text" name="MyName" >
<input type="submit" name="Send" value="送出表單">
</form>
呈現結果範例二其實與範例一大同小異,差別的重點在 method='get' 宣告,代表要使用 get 的方式傳遞表單內容,get 要用小寫字母,否則會無法順利傳遞,當網友送出表單後會傳給 php_get.php 這支程式,這也是一個很簡單的 PHP 接收程式,先說到這邊,把範例二的表單程式碼存成 form_get.html 檔案,後續會用到。<input type="text" name="MyName" >
<input type="submit" name="Send" value="送出表單">
</form>
接著是 PHP 的部分(將以下程式碼存成 php_get.php)
<?php
$MyName=$_GET[MyName];
echo $MyName;
?>
這支 php_get.php 是用來接收剛剛表單透過 get 方式傳遞過來的資料,重點也一樣在 $_GET 的部分,其中 GET 不可以寫成小寫,否則會失效,第二行的 echo 也同樣僅是將資料輸出而已。$MyName=$_GET[MyName];
echo $MyName;
?>
當我們有了form_get.html 以及 php_get.php 這兩個檔案後,與範例一相同的方式,用瀏覽器開啟 form_get.html 並隨便填寫一筆資料送出表單,應該就可以自動跳轉到 php_get.php 這個頁面,然後看到網頁上有剛剛所填寫的資料,值得注意的地方是網址欄位會出現表單欄位的參數以及參數值,這就是 GET method 的特色,也是與 POST method 最大的差異。
想深入研究 PHP GET 方法,可以參閱這一篇:PHP $_GET function 的使用方法詳細介紹。
總結
以上介紹了關於 PHP 的 POST 與 GET 兩種接收表單資料的方式,都是 PHP 相當入門的基本功夫,動態網頁除了撈取資料庫的資料外,讓網友填寫表單也是使用率非常高的功能,而表單要能順利運作,就要靠 HTML 與 PHP 的完美搭配囉!