用PHP和MySQL構建一個資料庫驅動的網站(五)
來源:互聯網
上載者:User
雖然看上去一切都好了,但是我們仍沒有達到我們真正地與使用者互動的目的,我們的使用者應該能夠輸入任意的資訊,並將它交給PHP來處理。接著我們的個人化歡迎頁面的例子,我們想要讓我們的使用者任意地輸入他(或她)的名字並將其顯示到資訊中,要讓使用者輸入資料,我們需要用到HTML的表單。
這兒是表單的代碼:
<FORM ACTION="welcome.php" METHOD=GET>
First Name: <INPUT TYPE=TEXT NAME="firstname"><BR>
Last Name: <INPUT TYPE=TEXT NAME="lastname">
<INPUT TYPE=SUBMIT VALUE="GO">
</FORM>
除了在這裡你可以任意輸入你的名字以外,這個表單所起的效果和我們上面的第二個串連(在查詢字串中使用firstname=Kevin&lastname=Yank)完全一樣。當你按提交按鈕(標誌為“GO”)時,瀏覽器會裝載welcome.php並自動為你在查詢字串中添加變數和它們的值。變數名就是在INPUT TYPE=TEXT標識中的NAME屬性,變數值就是使用者輸入的相應的內容。
INPUT TYPE=TEXT標識中的METHOD屬性是用來告訴瀏覽器如何在請求中發送變數名及變數值的。GET(就是我們在上面使用的)表示在查詢字串中傳遞變數,但是還有另外一種選擇。將變數顯示在查詢字串中並不總是令我們滿意的--甚至有的時候在技術上就是不可行的。如果在你的表單中包含了一個TEXTAREA標識用來讓使用者輸入大量的文本,這部分文本也顯示在查詢字串中實在是太長了,而且會超過瀏覽器所能支援的URL的最大長度。另外一種方法可以允許瀏覽器隱藏地傳遞資訊。這種方法的代碼和我們上面看到的表單的代碼幾乎一樣,只是我們將表單的方法從GET變成了POST:
<FORM ACTION="welcome.php" METHOD=POST>
First Name: <INPUT TYPE=TEXT NAME="firstname"><BR>
Last Name: <INPUT TYPE=TEXT NAME="lastname">
<INPUT TYPE=SUBMIT VALUE="GO">
</FORM>
這個表單和我們之前的那個在功能上完全一樣。唯一的不同是當使用者在按“GO”按鈕時所裝載頁面的URL將沒有一個查詢字串。一方面,這可以讓你通過表單提交大量的資料或者是敏感的資料(例如密碼),而不在一個查詢字串中顯示出來。另一方面,如果使用者將提交表單產生的結果頁添加到收藏夾,這個收藏夾是沒有用的,因為它不包含提交的資料。另外,附帶說一下,象AltaVista這樣的搜尋引擎總是利用查詢字串來提交查詢條件,其主要原因就是為了便於使用者將查詢結果頁添加到收藏夾中,以便在將來進行同樣的搜尋,因為搜尋條件是包含在URL之中的。