學習前的準備: 要想學習PHP,當然少不了要安裝PHP啦,所以如果你是初次學習,請先閱讀星空浪子兄及地藏的:
PHP4.03在linux下的安裝
PHP4.04在win98下的安裝
PHP4.04在英文win2000下的安裝
如果你找不到安裝程序請到下面下載:
PHP4.04Beta WIN32 安裝程序
PHP4.03源程序
PHP3.0.16 WIN32 安裝程序
PHP3.0.16源程序
如果你從來沒有接觸過PHP,那麼還是先看看這個吧,當然即使你是已經對PHP有所瞭解,但一本PHP4的的使用手冊也還是需要的,:)。此外一本HTML語法手冊當然也是不可缺少的啦。。。。。。。。。。
OK!現在應該已經沒有什麼可以阻止我們學習了,Let's go!
在學習開始以前,我們先交待一下關於表單的基礎知識,如果你對HTML非常熟悉,那麼可以跳過該部分,直接學習。
故名思議表單是利用網頁收集數據的工具,比如你想在網上搞個群眾調查啊什麼的,肯定是少不了要用他的。下面我簡單介紹一下表單的基礎知識,關於他的詳細內容請自行查閱HTML手冊。
表單的使用其實非常簡單,大家先看一下下面的例子:
<FORM action="<?php echo $PHP_SELF; ?>"METHOD=post>
名字: <INPUT TYPE=TEXT NAME="name"><BR>
單項選擇:
<INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨
<INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨
<INPUT TYPE=RADIO NAME="first" VALUE="我簡直就是個傻冒"> 我簡直就是個傻冒 <br>
多項選擇:
<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"><p>
<INPUT TYPE=SUBMIT VALUE= "謝謝"></p>
</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,PASSWORD,RADIO,CHECKBOX,SUBMIT,RESET,IMAGE,FILE,HIDDEN和BUTTON。 下面是對這幾個輸入類型的簡要說明:
TEXT 產生簡單的單行文本輸入字段,為了取得多行文本,用<TEXTAREA>標誌
PASSWORD 和TEXT一樣產生簡單的單行文本輸入字段,但不會在屏幕上顯示輸入內容
RADIO 產生可開閉的小單選按鈕,多項選擇可用CHECKBOX型或者<SELECT>標誌
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,我們的表單使用就簡單的講到這裡吧,如果有批評意見,或者好的想法請一定mail to 地藏,下面開始我們進入正題 ----- PHP處理表單(我靠,前面全是廢話呀,給我扁。。。。。)
用PHP來處理表單數據實在是一件非常簡單的事情,打個比方就好像你吃飯時用筷子一樣,使用非常的自然,沒有什麼需要特別注意的地方。老樣子,大家開始學習以前先看看下面的代碼吧。 <html>
<head>
<title>調查表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<?php
function display_form() {
global $PHP_SELF;
?>
<FORM action="<?php echo $PHP_SELF; ?>"METHOD=post>
名字: <INPUT TYPE=TEXT NAME="name"><BR>
單項選擇:
<INPUT TYPE=RADIO NAME="first" VALUE="我很笨">我很笨
<INPUT TYPE=RADIO NAME="first" VALUE="我非常笨">我非常笨
<INPUT TYPE=RADIO NAME="first" VALUE="我簡直就是個傻冒"> 我簡直就是個傻冒 <br>
多項選擇:
<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"><p>
<INPUT TYPE=SUBMIT VALUE= "謝謝"></p>
</FORM>
<?php
}
?>
//程序開始
<?php
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";
}
?>
<?php
if (empty($stage)) { display_form(); }
else { process_form(); }
?>
</body>
</html>
上面是一個非常類似調查表的PHP例子,由於程序比較簡單,所以沒有做什麼註解。程序的原型來自PHP實驗室。大家在仔細看程序之前可以把這段代碼拷下來在自己機器運行一下先看看實際效果,這樣有一個直觀的印象。
|
|