Professional Documents
Culture Documents
PHP 狀態管理的基礎
PHP 的表單處理
文字與密碼方塊
文字區域
核取方塊
下拉式清單方塊
選擇鈕
隱藏欄位
表單欄位驗證
PHP 狀態管理的基礎
HTTP 通訊協定的特性
狀態管理的種類
PHP 狀態管理的基礎
當 PHP 程式在伺服端執行時,因為 HTTP 通訊協
定並不會保留客戶端的使用者狀態,所以瀏覽不
同的 PHP 程式時, PHP 程式需要將使用者狀態
傳遞給下一頁瀏覽的 PHP 程式,稱為「狀態管理
」( State Management )。
簡單的說,狀態管理是在保留客戶端使用者狀態
,以便 PHP 網站可以取得使用者狀態來正確的執
行 PHP 程式。
HTTP 通訊協定的特性
HTTP 通訊協 定不會 持續 保持連 線: 只有當瀏覽程式提
出請求時才會建立連線,在請求後就斷線等待回應,每一
次請求和回應都需事先建立連線。
URL 參數傳遞資料
網頁表單的用途
PHP 程式是在伺服端執行,換句話說,客
戶端網頁只負責取得使用者輸入的資料,
然後將輸入資料送到伺服端進行處理,使
用的是 HTML 網頁表單,如下圖所示:
HTML 標籤建立網頁表單 - 標籤
在 HTML 標籤關於網頁表單的標籤只有五
個,如下表所示:
表單標籤 說明
<form> … </form> HTML 表單標籤
<input type=…> 輸入或選擇資料的表單欄位,包含按鈕和文字方
塊欄位,不同 type 屬性表示不同的欄位
<select> …. </select> 建立選單欄位,內含<option>標籤的選項
<option> …. </option> 選單欄位的選項
<textarea> …. </textarea> 文字區域欄位
HTML 標籤建立網頁表單 - 架構
<form name="name" method="post |
get" action="URL" enctype="MIME">
<input type=…>
<textarea> …. </textarea>
<select>
<option> …. </option>
</select>
<input type="submit" …>
</form>
HTML 標籤建立網頁表單 -<form> 標籤的屬
性
name 屬性:表單名稱。
method 屬性:設定資料送出方式,如下:
<form name="order"
method="post"></form>
action 屬性:設定 PHP 表單處理程式所在的路徑,也可
以是 URL 網址,如下所示:
<form name="order" method="post"
action="Ch9-3-2.php"></form>
enctype 屬性:設定表單資料傳送時的編碼方式。
$_POST 與 $_GET 結合陣列變數 - 說明
PHP 的表單處理是使用 PHP 的「預定變數」
( Predefined Variables )取得欄位資料,預
定變數不同於使用者宣告的變數,屬於 PHP 引擎
建立的變數。
PHP 關於表單處理的預定變數是一種預設擁有全
域變數範圍的結合陣列變數,一共有 2 個,其說
明如下表所示:
預定變數 說明
$_POST 結合陣列變數,儲存透過 HTTP POST 方法傳入 PHP 程式檔
案的表單欄位資料,鍵值是欄位名稱
$_GET 結合陣列變數,儲存透過 HTTP GET 方法傳入 PHP 程式檔
案的表單欄位資料,鍵值是欄位名稱
$_POST 與 $_GET 結合陣列變數 - 範例
例如:網頁表單擁有名為 Username 的欄
位,在 PHP 程式碼可以使用上表的預定變
數取得欄位值,如下所示:
$name = $_POST["Username"];
$name = $_GET["Username"];
上述程式碼可以取得結合陣列的元素值,
即欄位輸入的內容。
$_POST 與 $_GET 結合陣列變數 - 使用
取得清單方塊欄位的內容
下拉式清單方塊欄位 - 種類
下拉式清單方塊 : 當 size 屬性值為 1 時
只顯示一個選項,需要按右邊▼鈕才能顯
示其他選項,如下圖所示:
清單方塊: 和下拉式清單方塊一樣,只不
過顯示的選項不只一個, size 屬性為顯示
的選項數,如果選項太多超過清單方塊尺
寸,視窗就會出現捲動軸幫助檢視選項,
如下圖所示:
下拉式清單方塊欄位 - 語法
HTML 的 <select> 標籤需要配合
<option> 標籤的選項,才能建立下拉式
清單方塊欄位,其基本語法,如下所示:
<select name="Name" multiple size=number>
<option value="Item_Name"> 選項名稱 </option>
…..
</select>
下拉式清單方塊欄位 - 屬性
<select> 標籤的屬性說明,如下表所示:
屬性 說明
name 欄位名稱
multiple 設定是否為複選,如為複選一定是清單方塊
size 顯示選項數目,1 為下拉式清單方塊,大於 1 為清單方塊
<option> 標籤的屬性說明,如下表所示
:
屬性 說明
value 選項值
selected 此屬性沒有屬性值,加上此屬性表示是預選選項
取得下拉式清單方塊欄位的內容
下拉式清單方塊欄位會將 <option> 選項
標籤屬性 value 的值傳送到伺服器,在
PHP 程式是使用 $_POST 結合陣列取得欄
位內容,如下所示:
$gender = $_POST["Gender"];
上述程式碼取得下拉式清單方塊 Gender
的值,此值就是使用者選擇選項的 value
屬性值。
取得清單方塊欄位的內容 - 標籤
清單方塊如果是單選, PHP 處理程式取得選擇的
方式和下拉式清單方塊相同,如果是複選的清單
方塊欄位, HTML 表單標籤的欄位名稱是一個陣
列,如下所示:
<select name="Webs[]" size="4" multiple>
……
</select>
上述 <select> 標籤的 name 屬性為 Webs[] ,
表示 PHP 取得的欄位值是一個陣列,接著我們可
以使用 if 或 switch 條件敘述來判斷使用者的選
擇。
取得清單方塊欄位的內容 - 取得欄位內
容
在 PHP 程式一樣是使用 $_POST 取得欄位
內容,只不過取得的欄位內容是一個陣列
,如下所示:
$webs = $_POST["Webs"];
上述程式碼取得清單方塊欄位 Webs[] 的