表單處理
PHP為使用者提供了許多方便易用的強大功能。在表單的處理方面,PHP能夠自動地將由客戶端表單發送的資料賦值給相應變量,從而極大地簡化了整個表單的處理過程。
舉例來說,使用者建立如下表單:
當使用PHP對上述程式碼進行處理時,PHP會自動建立一個名為$name的變量,並將變數值「PETER」賦予該變數。
使用者可以直接對PHP建立的變數進行各種操作,例如顯示變數值:
echo “Hi $name!”;
或對變數值進行驗證:
if ($name == “PETER”) { echo “Please check out your email.”; }
下面,我們就來看看如何透過使用PHP建立並處理一個基本的表單。在範例當中,我們將會要求表單的填寫者回答幾個簡短的問題,包括輸入表單填寫者的姓名,電子郵件地址,完成問卷等。
這裡,我們將所要設計的頁面依照功能分割成表單顯示和表單處理兩個功能模組。這樣,使用者就不必設計兩個不同的頁面,而只需要在同一個PHP頁面中透過邏輯控制顯示或處理對應的功能模組。
A. 表單顯示
我們透過第一個功能模組來實現表單的顯示。具體代碼為:
function display_form()
{
global $PHP_SELF;
? >
”METHOD=GET >
Name:
Favorite Fruit: Apple
Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >Orange=“orange” >
Banana
Favorite Times to Eat Fruit:
Morning
Noon
Dinner
Latenight
? >
上述程式碼中絕大多數都是建立表單所必需的HTML程式碼。在此,我們只對所涉及的PHP知識做簡單介紹。
首先,我們來看看程式碼開始處的變數$PHP_SELF。變數$PHP_SELF是PHP中一個很方便的指針,其變數值就是目前頁面的URL位址。這樣,我們就可以透過在隨後的form標籤中將TARGET的值設定為$PHP_SELF,實現由該表單頁面處理表單的目的。這裡,我們使用$PHP_SELF變數而不使用頁面的實際位址,是因為透過使用$PHP_SELF變量,我們可以方便地對編寫的頁面程式碼進行修改和移動,而不必擔心在每次改動之後重新輸入新的頁面位址。
另外,在使用$PHP_SELF變數時,我們採用瞭如下方式:
global $PHP_SELF;
這表示程式碼中的$PHP_SELF變數為全域變數。使用者在使用PHP的過程中一定要注意PHP中任何的函數變數都是局部變數。這意味著任何函數變數的作用域都只限於包括該變數的函數本身。即使函數外存在同名變量,變數的值也不相同。因此,如果我們沒有在程式碼中以明確方式宣告函數變數$PHP_SELF為全域變數具有全域唯一值的話,使用者就會發現函數中的變數$PHP_SELF的值將會為空,而不是我們預先所期望的目前頁面的URL位址。
使用者可能已經注意到我們將表單複選選項的名稱設為times[]數組,而把單選選項的名稱設定為fruit常規變數。這是因為單選選項只允許使用者選擇唯一一個正確選項,因此fruit變數的值只可能是一個字串;相反,複選選項則允許使用者做多重性選擇。如果,使用者希望PHP能夠保存使用者可能做出的所有選擇的話,就需要使用陣列來保存所有的可能值。依照PHP的語法規則,我們在變數名稱times後面加上括號,使PHP知道變數是陣列變數而非普通的常規變數。