■ 例項學習 PHP 之表單處理篇 (轉)

worldblog發表於2007-12-07
■ 例項學習 PHP 之表單處理篇 (轉)[@more@]

標題: ■ 例項學習 之表單處理篇
   學習前的準備:

   要想學習PHP,當然少不了要PHP啦,所以如果你是初次學習,請先閱讀學院的文章:

  

   /school/.htm">PHP4.03在linux下的安裝

   .htm">PHP4.04在win98下的安裝

   .htm">PHP4.04在英文win2000下的安裝

   如果你找不到安裝請到下面:

   安裝程式

  

  

  

   OK!現在應該已經沒有什麼可以阻止我們學習了,Let's go!

   在學習開始以前,我們先交待一下關於表單的基礎知識,如果你對HTML非常熟悉,那麼可以跳過該部分,直接學習。

   故名思議表單是利用網頁收集資料的工具,比如你想在網上搞個群眾調查啊什麼的,肯定是少不了要用他的。下面我簡單介紹一下表單的基礎知識,關於他的詳細內容請自行查閱HTML手冊。

   表單的使用其實非常簡單,大家先看一下下面的例子:

  

   < FOaction="< ?php echo $PHP_SELF; ?>"METHOD=post>

   名字: < INPUT TYPE=TEXT NAME="name">

   單項選擇:

   < INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨

   < INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨

   < INPUT TYPE=RADIO NAME="first" VALUE="我簡直就是個傻冒"> 我簡直就是個傻冒

   多項選擇:

   < INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜歡打藍球">我喜歡打藍球

   < INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜歡游泳">我喜歡游泳

   < INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜歡跳舞">我喜歡跳舞

   < INPUT TYPE=CHECKBOX NAME="second[]" VALUE="我喜歡爬山">我喜歡爬山

   < INPUT TYPE=HIDDEN NAME="stage" VALUE= "results">

   < INPUT TYPE=SUBMIT VALUE= "謝謝">

   < /FORM>


   名字:
單項選擇: 我很笨 我非常笨 我簡直就是個傻冒
多項選擇: 我喜歡打藍球 我喜歡游泳 我喜歡跳舞 我喜歡爬山

   怎麼樣?看明白了嗎?上部分是表單的html,下部分則是這個表單在的表現形式。 標誌< FORM action="< ?php echo $PHP_SELF; ?>"METHOD=post> 表示開始一個表單,到標誌< /Form>時表單結束。處理這個表單的程式,用Form標誌裡的action屬性指出。在這裡為< ? echo $PHP_SELF; ?>, 其中$PHP_SELF是PHP中的一個global 變數,用於儲存目前 PHP 程式頁面的檔名,< ? echo $PHP_SELF; ?>的意思就是用當前的PHP程式來處理這個表單。那麼下面的METHOD=post表示什麼意思呢?其實表單從瀏覽器發給有兩種方法. GET 和 POST. GET方法將資料打包放置在環境變數QUERY_STRING中作為URL整體的一部分傳遞給伺服器。 POST做很多類似GET同樣的事情, 不同的地方就是它是分離地傳遞資料給指令碼. 你的指令碼透過標準輸入獲取這些資料. QUERY_STRING環境變數將不再設定.因此POST有更好的性,尤其如果你的表單中有很多資料的話. 當你用GET, 這個伺服器就分配變數QUERY_STRING給所有的表單資料, 但是這個變數可量是有限的. 換句話說,如果你有很多資料但是你又用GET,你會丟失很多資料。 如果你用POST, 你可以儘可能多地使用資料, 因為這些資料從來也不分配到一個變數裡。此外用post傳遞資料還有一個好處,它不會象get那樣把你傳送的資料暴露在瀏覽器的位址列中,比如象下面這種:form.php?name=genius&pwd=123456 ,明白了吧?所以還是用post讓人安心一點啦。

   (編者注:由於的相容問題,在上文的原始碼中的“$”符和上引號請在實際應用中改為半形字元的相應符號。若有不便之處,敬請原諒。)

   下面繼續我們的學習吧,在建立表單的過程中,你一般只會用到兩個標誌,一個是前面說的; Form>標誌,還有就是 ; Input>標誌,不要小看它喲,表單裡的各種小都是由它來建立的。藉助於Input標誌的Type屬性可以定義輸入方法型別,有效值為TEXT,PASS,RADIO,CHECKBOX,SUBMIT,RESET,IMAGE,FILE,HIDDEN和BUTTON。 下面是對這幾個輸入型別的簡要說明:

TEXT 產生簡單的單行文字輸入欄位,為了取得多行文字,用; TEXTAREA>標誌 PASSWORD 和TEXT一樣產生簡單的單行文字輸入欄位,但不會在螢幕上顯示輸入內容 RADIO 產生可開閉的小單選按鈕,多項選擇可用CHECKBOX型或者; >標誌 SUBMIT 產生用於將所有名稱數值對提交給表單處理程式的按鈕 RESET 用於將所有輸入方法復位為空值或預設值 IMAGE 將提交按鈕變成圖形,這個數值與提交按鈕一致,只是選擇圖形時滑鼠位置x、y座標也傳送給表單處理程式 BUTTON 產生不與指令碼進行特定互動功能的按鈕

   現在我們已經知道如何生成輸入小控制元件了,那麼在這些控制元件裡輸入的資料怎麼傳遞給我們的程式來處理呢?在d 在INPUT標誌中有一個NAME屬性專門用於給輸入的數值取名,例如: NAME="first"。在定義以後,如果想程式訪問這個資料,用global申明一下就可以使用嘍。如果想定義資料預設值的話,可以用Value屬性定義,例如上面程式的 VALUE="我很笨" 就是定義了一個預設值,下面我們來看一個單項選擇的例項:

   ; INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨

   ; INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨

   ; INPUT TYPE=RADIO NAME="first" VALUE="我簡直就是個傻冒"> 我簡直就是個傻冒

   從上面大家可以看出NAME,VALUE的基本用法了嗎?什麼?還不明白…………(地藏暈倒在地……)

   OK,我們的表單使用就簡單的講到這裡吧,下面開始我們進入正題 ----- PHP處理表單

   用PHP來處理表單資料實在是一件非常簡單的事情,打個比方就好象你吃飯時用筷子一樣,使用非常的自然,沒有什麼需要特別注意的地方。老樣子,大家開始學習以前先看看下面的程式碼吧。

   上面是一個非常類似調查表的PHP例子,由於程式比較簡單,所以沒有做什麼註解。大家在仔細看程式之前可以把這段程式碼拷下來在自己機器執行一下先看看實際效果,這樣有一個直觀的印象。

   (編者注:由於資料庫的相容問題,在上文的原始碼中的“$”符和上引號請在實際應用中改為半形字元的相應符號。若有不便之處,敬請原諒。)

調查表;/title> <p></p> <p></p> <p></p>

function display_form() {

global $PHP_SELF;

?>

名字:

   單項選擇:

我很笨

我非常笨

我簡直就是個傻冒 ; br>

   多項選擇:

我喜歡打藍球

我喜歡游泳

我喜歡跳舞

我喜歡爬山

;p>

;/p>

}

?>

//程式開始

function process_form()

{

global $name ;

global $first;

global $second;


if ($first == '我很笨') { $first_message = '你不笨。'; }

elseif ($first == '我非常笨') { $first_message = '你很聰明。'; }

else { $first_message = '你簡直就象是一個聰明的人了。'; }

$favorite_second = count($second);

if ($favorite_second ;= 1)

{$second_message = '但你很快就會在動物園裡死去,懺悔吧!';}

elseif ($favorite_second > 1 && $favorite_second ; 4)

{$second_message = '你是隻愛運動的的猩猩。';}

else {$second_message = '你運動的太多了,對猩猩來講已經過量,你準備棺材吧,:(';}

echo "這是一項針對猩猩的測試:;br>;br>";

echo "你好! 你的名字叫:$name. ;br>;br>";

echo "你的測驗結果是。。。。。$first_message $second_message";

}

?>

if (empty($stage)) { display_form(); }

else { process_form(); }

?>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989228/,如需轉載,請註明出處,否則將追究法律責任。

相關文章