首頁>技術>

Web表單主要用來在網頁中傳送資料到伺服器,經過程式處理中,將使用者所需要的資訊再傳遞給客戶端的瀏覽器上。這樣就形成了一個瀏覽者和網站之間的一個互動。

一、表單的提交方式
<form name=’NAME’ method=”GET” action=”URL”>...</form>

GET 提交或者GET()方法是將表單內容附加在URL後面的傳送。在位址列上的將會顯示”“URL+使用者傳遞的資料”組成一個大URL。URL和表單元素直接使用逗號“?”隔開的。多個表單元素用“&”隔開,每個表單元素的格式是name=value。注意大URL的長度限制在1M字元以內,資料量太大資料將會被截斷,從而導致意外的處理結果。

POST 提交或者POST()方法是將將表單的資訊作為一個數據塊傳送到伺服器,在瀏覽器的位址列不顯示提交的資訊。提交方式有表單的method屬性,預設是GET()方法。表單的action是指向處理該表單頁面的URL(相對位置或者絕對位置)

二、表單元素

一個表單裡面就是表單元素。表單元素主要有輸入域標記(<input>)、選擇域標記(<select>)、文字域標記(<textarea>)

1、輸入域標記

<input type=”type” name=”name” />

由type屬性控制輸入域的型別,name是輸入域的名稱。

下面介紹幾個type屬性

text:文字框屬性,可以指定value(預設值),name(文字框的名稱),size(文字框的寬度),maxlength(文字框的最大輸入值)

password:密碼域。使用者輸入的字元被替換成“*”

file:檔案域。檔案上傳的使用。

checkbox:複選框。允許選擇多個選擇項,checked 屬性用來設定預設選中。

reset:重置和清除表單內容。

hidden:隱藏域。在表單中隱藏方式提交變數值。對於使用者是不可見的。提交的時候會一起隨其他表單傳送。

2、選擇域標記

<select name=”name” value=”value” size=”3”><option value=”1”> 選項1 </option><option value=”2”> 選項2 </option></select>

name表示選擇域的名稱,size表示列表的行數,value 表示選項值,multiple表示該列表可以選擇多項。預設只能選擇一項。select 表示預設被選中

3、文字域標記

<textarea name=”name” value=”value” rows=10 cols=10 warp=”value”>...</textarea>

name表示文字域的名稱,cols表示文字域的列數,rows表示文字域的行數,value表示文字域的預設值。warp使用者設定顯示和送出時的換行方式。warp=”off” 表示不自動換行,warp=”hard” 表示自動硬回車換行,換行標記一同傳送到伺服器,輸出的時候也會被換行。warp=”soft”表示自動軟回車換行,換行標記不會被髮送到伺服器,輸出時候仍然為一列。

三、PHP引數傳遞的常用方法

php引數傳遞常用的方法有:$_POST[]、$_GET[]、$_SESSION[],分別使用者獲取表單,URL與session變數的值。

1、$_POST[] 全域性變數

可以獲取到POST()方法提交過來的表單元素的值。

格式:$_POST[name]

name 為表單元素的name

<?php//省略建立表單,文字框的name為username,method 是 POST$username = $_POST[“username”];?>

注意:在有些php版本中,可以直接$username就可以指定表單的值。這是可以透過設定php.ini的register_globals=ON/OFF。如果是ON,可以直接寫成$username,反之則不可以。這裡不建議設定為ON,推薦使用register_globals=OFF。

2、$_GET[] 全域性變數

可以獲取到GET()方法提交過來的表單元素的值。

格式:$_GET[name]

name 為表單元素的name

<?php//省略建立表單,文字框的name為username ,method是 GET$username = $_GET[“username”];?>

不管是$_GET[]還是$_POST[]獲取表單元素的值,表單元素的名稱是區別字母大小寫的。疏忽了大小寫,程式允許有可能取不到值或者彈出錯誤的提示資訊。

3、$_SESSION[] 變數

$_SESSION[] 可以獲取表單元素的值。

格式:$_SESSION[name]

name為表單元素的name。

<?php//省略建立表單,文字框的name為username$username = $_SESSION[“username”];?>

該方法獲取到的變數值,儲存之後任何頁面都可以使用,這種方式很耗費系統資源,是要慎重使用的。

四、在WEB頁面中嵌入PHP指令碼

1、在html頁面中新增php指令碼

·web頁面中隨時新增<?php ... ?> 標記,這兩個標記中間的文字都會被解釋為php,標記之外的任何文字都將被認為是普通的html

2、對錶單元素的value賦值

只需將所需要賦值的資料直接新增到value資料中。

<?php$val = “123456”; //定義一個$val 的值?><input type=”text” name=”username” value=”<?php echo $val; ?>” />
五、對URL傳遞的引數進行編碼/解碼

1、對URL傳遞的引數進行編碼。

前面我們說道GET()方法提交的就是一個長URL,表單資料都在URL裡。

如:http://url?username=admin&password=123456

很明顯這樣的傳遞會將引數暴露問題,所以必須對URL傳遞的引數進行編碼。

語法格式:string urlencode(string str);

實現了字串str的url編碼。比如引數中帶有空格,進行編碼後空格會被換成%20。

對已經URL編碼過的字串,在$_GET[]方法獲取的時候則還需要進行解碼才能知道原來的值。

語法格式:strIng urldecode(string str);

實現了字串在URL編碼後的str字串進行解碼。

明天我們來看看php和javascript的互動。

14
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • leetcode:字串轉換整數