Chap5 PHP程式設計進階 授課講師:
學習重點 資料檔案的存取與網頁之間的傳遞 Cookie與Session 網址重新導向與網頁重新載入 網頁內容的快取控制 引入檔的應用 檔案的管理
資料在網頁之間的傳遞 在PHP的程式設計上,使用了$_GET、$_POST等特殊的陣列函數來處理表單上的資料與訊息的傳遞。 若選擇以GET方式來傳送表單資料,必須使用$_GET陣列變數來接收資料。 若是選擇以POST方式來傳送表單資料,則是透過$_POST陣列變數來取得資料。
$_GET與$_POST表單陣列變數
輸入完資料後,點按[送出查詢]按鈕,即可將填入與選取的資料傳送至指定的answer.php程式,而answer.php程式的寫法如下:
$_POST[“your_name”],此陣列元素可以取得傳遞過來的表單資料欄位:姓名(your_name)、$_POST[“your_sex”] 此陣列元素可以取得傳遞過來的表單資料欄位:性別(your_sex)、以及$_POST[“introduce_myself”] 此陣列元素可以取得傳遞過來的表單資料欄位:自我介紹(introduce_myself)。而執行後的結果如下:
加上nl2br函數後,可以讓字串資料的輸出進行適當的分行:
GET傳遞方式
表示著要以GET的方式來傳遞表單資料,而接收資料的網頁名為answer_get.php網頁。 <FORM>的寫法為: <FORM method=”get” action=”answer_get.php”> 表示著要以GET的方式來傳遞表單資料,而接收資料的網頁名為answer_get.php網頁。
在填寫完網頁表單資料後,點按[送出查詢]按鈕,即可將填寫的表單資料傳遞給指定的網頁answer_get.php。而此程式的寫法如下:
以GET方式傳遞表單資料時,會在導覽接收網頁的網址列上產生一長串的字串。也就是說,利用GET方式傳遞表單資料時,傳遞的資料也會顯示在網址列上。 網址上的問號?後面所跟隨的便是所傳遞的欄位資料,而各個填寫的欄位資料之間再以&符號串聯。
注意 透過GET方式傳遞資料是將資料附加在網址的後面,對於傳送少量資料時是比較簡單、便利的選擇。不過,由於網址列會有長度上的限制,因此,可以傳送的資料較少,此外,傳遞資料時的填入資料也都在網址列上曝光了,如此安全性的考量就必須格外注意了!
POST傳遞方式 利用POST方式傳遞資料是以整個表單資料欄位來傳遞所填寫的資料,並不會在網址列上看到所傳送的資料,因此比起GET方式要安全得多!所以,在網際網路的應用上經常使用這種方式來傳遞表單資料。
導覽此網頁後,即可填寫表單資料,填寫完畢後即可點按[送出查詢]按鈕,進行資料的傳遞。
接受資料的網頁也從$_GET改寫成$_POST: 瀏覽接收網頁時在網址列上僅會顯示網頁位址,並不會顯示所傳遞的資料參數。
密碼驗證的表單設計 在表單的資料型態上,提供有密碼資料型態的文字方塊,可應用在網站帳號驗證的服務上。只要將表單欄位的資料型態設定為password,即可產生一個可輸入的文字方塊。寫法如下: <INPUT type=”password” name=”欄位名稱”>
輸入使用者帳號與密碼的範例,其中使用者帳號資料欄位使用的是一般文字方塊、密碼資料欄位則使用密碼文字方塊:
輸入的帳號與密碼則可以透過接收網頁裡的程式撰寫來進行驗證。譬如:上例的表單網頁其傳遞方式為POST,而接受傳遞資料的網頁設定為identify.php,因此,在此PHP網頁裡即可透過if敘述來進行資料的比對與驗證。 假設正確的使用者帳號為「gotop」、密碼為「123456」。
輸入正確的帳號與密碼後,顯示的網頁內容如下 : 入錯誤的帳號或密碼時,顯示的網頁內容如下: