綜述:表單作為使用者提交資訊的一個要害途徑,一直是PHP編程中的一個最基本的方面,也是入門者會碰到的一個大的重點與痛點。我們選擇有關處理關聯數、獲得同名checkbox的選取值、上傳檔案方面比較輕易令眾困惑的地方進行歸
如何使用表單傳遞關聯陣列?
通過表單傳遞的關聯陣列能被 each()函數讀取,程式如下:
//test1.php
<form action="test2.php" method=post>
<input type=hidden name="var[Address]" value="Beijing">
<input type=hidden name="var['age']" value="20">
<input type=submit value=submit>
這個名為var[Address]值為"Beijing"的元素遞交到test2.php後,就成了一個關聯陣列,var["Address"]="Beijing":
//test2.php
<?
echo $var["Address"];
?>
輸出結果為:Beijing
如何處理同名checkbox?
具體代碼:
test1.php:
<FORM METHOD=POST ACTION="test2.php">
蘋果<INPUT TYPE="checkbox" NAME="come[]" VALUE="蘋果"><BR>
鴨梨<INPUT TYPE="checkbox" NAME="come[]" VALUE="鴨梨"><BR>
香蕉<INPUT TYPE="checkbox" NAME="come[]" VALUE="香蕉"><BR>
西瓜<INPUT TYPE="checkbox" NAME="come[]" VALUE="西瓜"><BR>
<INPUT TYPE="submit" VALUE="提交">
</FORM>
test2.php:
你的選擇:<BR>
<?
for ($i=0;$i<sizeof($come);$i ) echo $come[$i],"<BR>";
?>
這樣從test1.php提交過來的所有名為come[]的元素就組成了一個數組,這樣我們就可以很輕易地處理了.
怎樣才能察看提交的所有資訊?
一般來說,PHP引擎將每一個表單域放到一個叫做$HTTP_POST_VARS的數組中,所以我們可以通過讀取這個數組就可以察看提交的所有資訊:
<?
echo "POST 所送出的值為:<BR>";
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
echo "$key => $val<BR>";
}
?>
如何同時上傳多個檔案?
我們來看一個例子。
下面是上傳檔案的提交頁面,利用該頁面你不僅可以產生 1000 個上傳檔案框(也可以是任意多個 0~n ),而且可分別指出它們的儲存路徑。
提交頁面的檔案輸入框為命名為: file0,file1,...file100,...fileN
提交頁面的檔案路徑框為命名為: path0,path1,...path100,...pathN
由於頁面的產生非常簡單,所以就不在此多解釋了,用 javascript 定義了兩個函數,check() 用於提交頁面,create()用於組建檔案上傳框。
phpfileup.htm
--------------------------------------------------------
【檔案php9.txt】
--------------------------------------------------------
檔案提交頁面既已產生,下面任務就很明確了:將提交的檔案內容儲存到伺服器上。
我們先定義一個檔案儲存函數 fup() 它有兩個參數:
$filename: 檔案內容
$fname: 檔案名稱(包含路徑)
剩下的就是寫一個迴圈將檔案依次寫入伺服器。