PHP 接收 form 表單變數傳遞範例

PHP 接收 form 表單變數傳遞有兩種方式,分別為 POST 與 GET 這兩種方法(method),兩者的主要差異在傳遞資料的過程,PHP 是否會將 HTML 表單欄位的參數及參數值顯示於網址(url)上,POST method 不會顯示參數,而 GET method 則會顯示,我們也曾經分別對這兩種做過介紹,這篇整合的說明讓各位一次看到兩種 PHP 接收 HTML FORM 表單變數資料傳遞的差異。

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 表單設計

接著是 PHP 的部分(將以下程式碼存成 php_post.php)
<?php
 $MyName=$_POST[MyName];
 echo $MyName;
?>
PHP 的內容第一行『$MyName=$_POST[MyName];』就是 POST method 用來接收表單資料的寫法,要注意 $_POST 的英文字母都要大寫,否則會失效,第二行 echo 僅是將接收到的欄位值輸出到螢幕上而已。

在範例一中,我們建立了 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 檔案,後續會用到。

接著是 PHP 的部分(將以下程式碼存成 php_get.php)
<?php
 $MyName=$_GET[MyName];
 echo $MyName;
?>
這支 php_get.php 是用來接收剛剛表單透過 get 方式傳遞過來的資料,重點也一樣在 $_GET 的部分,其中 GET 不可以寫成小寫,否則會失效,第二行的 echo 也同樣僅是將資料輸出而已。

當我們有了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 的完美搭配囉!
© Copyright webtech.tw Since 2010