張喵喵
(基礎篇)PHP與Web頁面交互
PHP與Web頁面交互是實現PHP網站與用戶交互的重要手段。在PHP中提供了兩種與
Web頁面交互的方法,一種是通過Web表單提交數據,另一種是通過URL參數傳遞。
這里我們將詳細講解表單的相關知識,為以后學習PHP頁面交互做好鋪墊。
1 、創建表單
Web表單的功能是讓瀏覽者和網站有一個互動的平臺。Web表單主要用來在網頁中發
送數據到服務器,如提交注冊信息時需要使用表單。當用戶填寫完信息后執行提交
(submit)操作,于是將表單中的數據從客戶端的瀏覽器傳送到服務器端,經過服
務器端PHP程序進行處理后,再將用戶所需要的信息傳遞回客戶端的瀏覽器上,從
而獲得用戶信息,使PHP與Web表單實現交互。使用<form>元素,在HTML標記間插入
表單元素,即可創建一個表單。
代碼片段
<form name="form_name" method="method" action="url" enctype="value"
target="target_win" id="id">
……
</form >
屬性
說明
name
表單名
method
設置表單的提交方式,即GET或則POSt(GET方法將表單內容附加在URL地址后面。
POST方法將表單中的信息作為一個數據發送到服務器處理程序中,在瀏覽器的地址
欄不顯示提交的信息。Method默認為get)
action
設置表單數據提交的URL(相對位置或則絕對位置)
enctype
指定數據傳送到服務器時瀏覽器使用的編碼類型(用于對表單內容進行編碼的
MIME 類型。)
target
設置返回信息的顯示格式
application/x-www-form-urlencoded 默認的MIME類型,表示表單數據應該被編碼
成一個長串。
Multipart/form-data:上傳文件專用類型,表示將每一個編碼作為一個獨立的部分
使用。
Text/plain:將表單數據提交給一個電子郵件地址,數據以純文本形式進行編碼,
其中不含任何控件或格式字符。
target屬性值:
<form>標記中target屬性的設置,可以控制提交頁在窗口中的打開方式。
_blank:將返回頁面信息顯示在新的窗口中。
_parent:將返回信息顯示在父級窗口中。
_self:將返回信息顯示在當前窗口中。
_top:將返回信息顯示在頂級窗口中。
在使用form表單時,必須要指定其行為屬性action,它指定表單提交數據的處理頁
。GET方法是將表單內容附加在URL地址后面;POST方法是將表單中的信息作為一個
數據塊發送到服務器上的處理程序中,在瀏覽器的地址欄不顯示提交的信息。
method屬性默認為GET方法。
2 、認識表單元素
表單由表單元素組成。常用的表單元素有以下幾種標記:輸入域標記<input>、選
擇域標記<select>和<option>、文本域標記<textarea>等。下面分別進行介紹。
2.1 輸入域標記<input>
輸入域標記<input>是表單中最常用的標記之一。常用的文本域、按鈕、單選按鈕
及復選框等構成了一個完整的表單。
參數name是指輸入域的名稱,參數type是指輸入域的類型。在<input type=" ">標
記中一共提供了10種類型的輸入區域,用戶所選擇使用的類型由type屬性決定。
type屬性取值及舉例如表所示。
2.2 選擇域標記<select>和<optiom>
通過選擇域標記<select>和<option>可以建立一個列表或者菜單。菜單節省空間,
正常狀態下只能看到一個選項,單擊按鈕打開菜單后才能看到全部的選項。列表可
以顯示一定數量的選項,如果超出了這個數量,會自動出現滾動條,瀏覽者可以通
過拖動滾動條來查看各選項。
語法:
參數name表示選擇域的名稱;參數size表示列表的行數;參數value表示菜單選項
值;參數multiple表示以菜單方式顯示數據,省略則以列表方式顯示數據。
2.3 文本域標記<textarea>
文本域標記<textarea>用來制作多行的文本域,可以在其中輸入更多的文本。
參數name表示文本域的名稱;rows表示文本域的行數;cols表示文本域的列數(這
里的rows和cols以字符為單位);value表示文本域的默認值。warp用于設定顯示
和送出時的換行方式,值為off表示不自動換行;值為hard表示自動按Enter鍵換行
,換行標記一同被發送到服務器,輸出時也會換行;值為soft表示自動按Enter鍵
換行,換行標記不會被發送到服務器,輸出時仍然為一列。
3 、在Web頁面中創建表單
在一個Web頁面中,允許有多個表單,在編寫代碼時,由表單的name和ID屬性值對
各個表單進行區分。
4 、在Web頁面中嵌入PHP腳本
在Web頁中嵌入PHP腳本的方法有兩種:一種是直接在HTML標記中添加"<?php?>"PHP
標記符,寫入PHP腳本;另二種是對表單元素的value屬性進行賦值。下面分別對這
兩種方法進行講解。
4.1 直接添加標記符
在Web編碼過程中,通過在HTML標記中添加PHP腳本標記"<?php ?>"來嵌入PHP腳本
,兩個標記之間的所有文本都會被解釋為PHP語言,而標記之外的任何文本都會被
認為是普通的HTML。
4.2 為表單賦值
在Web程序開發過程中,為了使表單元素在運行時有默認值,通常需要對表單元素
的value屬性進行賦值。下面通過具體的實例講解賦值的方法。
5 、提交表單數據
交表單數據有兩種方法:POST方法和GET方法。采用哪種方法提交表單數據由
<form>表單的method屬性值決定。下面詳細講解這兩種提交表單數據的方法。
5.1 POST方法
應用POST方法提交表單數據的方法非常簡單,只需要將<form>表單中的method屬性
值設置成"POST"即可。POST方法不依賴于URL,不會將傳遞的參數值顯示在地址欄
中。另外,POST方法可以沒有限制地傳遞數據到服務器,所有提交的信息在后臺傳
輸,用戶在瀏覽器端是看不到這一過程的,安全性高。所以,POST方法比較適合用
于發送一個保密的(如信用卡號)或者比較大量的數據到服務器。
<body>
<form name="example" method="post"action="success.php">
姓名:<inputtype="text" name="name"/> <br/>
密碼 :<input type="password" name="password"/>
<inputtype="submit" value="提交"/>
</form>
</body>
5.2 GET方法
GET方法是<form>表單中method屬性的默認方法。使用GET方法提交的表單數據被附
加到URL上,并作為URL的一部分發送到服務器端。在程序的開發過程中,由于GET
方法提交的數據是附加到URL上發送的,因此,在URL的地址欄中將會顯示"URL+用
戶傳遞的參數"。
<body>
<form name="example" method="get"action="success.php">
姓名:<inputtype="text" name="name"/> <br/>
密碼 :<input type="password" name="password"/>
<inputtype="submit" value="提交"/>
</form>
</body>
顯而易見,這種方法會將參數暴露無疑。如果用戶傳遞的參數是非保密性的參數(
如id=8),那么采用GET方法傳遞數據是可行的;如果用戶傳遞是保密性的參數(
如用戶登錄的密碼,或者信用卡號等),這種方法就會不安全。解決該問題是將表
單的method指定的GET方法改為POST方法。
注意:若要使用GET方法發送表單,URL的長度應限制在1MB字符以內。如果發送的
數據量太大,數據將被截斷,從而導致意外或失敗的處理結果。
6 、POST方法與GET方法的使用區別
在瀏覽器中向服務器發送表單數據的方法有兩種,即POST方法和GET方法。這兩種
方法在Web頁面的應用上有著本質的不同。
POST方法發送變量數據時,對于用戶而言是保密性質的。從HTTP協議來看,數據附
加于header的頭信息中,用戶不能隨意修改,這對于Web應用程序而言,安全性要
好得多,而且使用POST方法向Web服務器發送數據的大小不受限制。
GET方法是在訪問URL時使用瀏覽器地址欄傳遞值。GET方法方便直觀,但缺點是訪
問該網站的用戶也可以修改URL串后發送給服務器,GET傳遞的字符串長度有一定的
限制,不能超過250個字符,如果超長,瀏覽器會自動截取,導致數據丟失或程序
運行出錯。另外,GET方法不支持ASCII字符之外的任何字符,如果包含有漢字或其
他非ASCII字符,需要應用PHP的內置函數將參數值轉換成其他編碼格式進行傳遞。
因此,在網站開發過程中,程序員應根據實際需要靈活地選擇POST方法和GET方法
來提交表單數據。
7 、POST方法與GET方法的使用區別
PHP的全局變量有3種:$_POST[ ]、$_GET[ ]和$_SESSION[ ],分別用于獲取表單
、URL、Session變量的值。這3種方法在使用上有很大的區別,下面分別進行詳細
介紹。
7.1 $_POST[ ]全局變量
使用PHP的$_POST[]全局變量可以獲取表單元素的值。在實際程序開發過程中,使
用哪種方法獲取數據資源,是由<form>表單元素的method屬性決定的。如果表單中
method屬性指定的是用POST方法進行數據傳遞,那么在處理數據時就應該使用
$_POST[ ]全局變量獲取表單數據。
通過$_POST[ ]全局變量獲取表單數據,實際上就是獲取不同的表單元素的數據。
<form>標簽中的name是所有表單元素都具備的屬性,即為這個表單元素的名稱,在
使用時需要使用name屬性來獲取相應的value屬性值。所以添加的所有控件必須定
義其name屬性值,另外,為了避免獲取的數據出現錯誤,表單元素在命名上盡可能
不要重復,盡量使用具有一定意義的英文縮寫或拼音命名。
7.2 $_GET[ ]全局變量
PHP使用$_GET[]全局變量獲取通過GET方法傳遞的值,使用格式為:
$_GET[name]
例如,創建一個表單,設置method屬性值為GET,添加一個文本框,name為user,
獲取表單元素值的代碼如下。
注意:PHP可以應用$_POST[]或$_GET[]全局變量來獲取表單元素的值。但值得注意
的是,獲取的表單元素名稱區分字母大小寫。如果在編寫Web程序時忽略字母大小
寫,那么在程序運行時將獲取不到表單元素的值或彈出錯誤提示信息。
7.3 $_SEESION[ ]全局變量
使用$_SEESION[]變量可以跨頁獲取變量的值,格式為:
$_SEESION[name]
在PHP動態頁中,可以將變量或者表單元素的值賦值給$_SEESION[]全局變量,進而
實現變量值或者表單元素值的跨頁傳遞。
例如,建立一個表單,添加一個文本框,命名為user,應用$_SEESION[]全局變量
獲取表單元素的代碼如下。
代碼片段
$user=$_SESSION["user"]
應用$_SEESION[]傳參的方法獲取的變量值,保存之后任何頁面都可以使用。但是
這種方法很耗費系統資源,建議讀者慎重使用。
分類: PHP入門知識
好文要頂 關注我 收藏該文
張喵喵
關注 - 0
粉絲 - 19
+加關注
0 0
? 上一篇:(基礎篇)數組函數詳解
? 下一篇:(基礎篇)PHP與JavaScript交互
posted on 2016-10-30 14:56 張喵喵 閱讀(5599) 評論(0) 編輯 收藏
刷新評論刷新頁面返回頂部
注冊用戶登錄后才能發表評論,請 登錄 或 注冊,訪問網站首頁。
【推薦】超50萬VC++源碼: 大型組態工控、電力仿真CAD與GIS源碼庫!
【免費】要想入門學習Linux系統技術,你應該先選擇一本適合自己的書籍
【前端】SpreadJS表格控件,可嵌入應用開發的在線Excel
【直播】如何快速接入微信支付功能
騰訊云
最新IT新聞:
· 知行不合一,Elon Musk最大的敵人居然是自己?
· Spotify終止了一項要求家庭套餐用戶共享GPS位置的測試
· AI畫的畫要上佳士得拍賣了,起拍價1萬歐元!
· 2元一袋和10元一袋的鹽到底差在哪?終于清楚了
· Facebook CEO扎克伯格自己的賬戶也被黑
? 更多新聞...
華為云HC0917
最新知識庫文章:
· 為什么說 Java 程序員必須掌握 Spring Boot ?
· 在學習中,有一個比掌握知識更重要的能力
· 如何招到一個靠譜的程序員
· 一個故事看懂“區塊鏈”
· 被踢出去的用戶
? 更多知識庫文章...
公告
昵稱:張喵喵
園齡:1年11個月
粉絲:19
關注:0
+加關注
導航
博客園
首頁
新隨筆
聯系
訂閱訂閱
管理
< 2018年9月 >
日 一 二 三 四 五 六
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6
統計
隨筆 - 52
文章 - 0
評論 - 3
引用 - 0
搜索
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
我的標簽
隨筆分類
php簡單基礎(1)
PHP入門知識(19)
PHP實用知識(32)
隨筆檔案
2016年11月 (5)
2016年10月 (47)
最新評論
1. Re:(進階篇)Cookie與 Session使用詳解
厲害了
--02仰望天空
2. Re:(基礎篇) 正則表達式詳解
好看
--赫赫001
3. Re:(實用篇)淺談PHP攔截器之__set()與__get()的理解與使用方法
構造方法默認存在的吧?
--Recoder
閱讀排行榜
1. (基礎篇)正則表達式的語法匯總與詳細介紹(11599)
2. (基礎篇) php中0與空 Null false的區別(8219)
3. (進階篇)Cookie與 Session使用詳解(7688)
4. (基礎篇)PHP獲取時間、時間戳的各種格式寫法匯總(5781)
5. (實用篇)PHP ftp上傳文件操作類(5739)
評論排行榜
1. (基礎篇) 正則表達式詳解(1)
2. (進階篇)Cookie與 Session使用詳解(1)
3. (實用篇)淺談PHP攔截器之__set()與__get()的理解與使用方法(1)
推薦排行榜
1. php基礎(1)
2. (基礎篇)PHP字符串操作(1)
3. (基礎篇)正則表達式的語法匯總與詳細介紹(1)
4. (基礎篇)字符串定義與操作(1)
5. (進階篇)PHP實現用戶注冊后郵箱驗證,激活帳號(1)
Powered by: 博客園 Copyright ? 張喵喵
版權聲明:
1、弈聰軟件網站內容中凡注明“來源:XXX(非陜西弈聰網站)”的作品,轉載自其它媒體,轉載目的在于傳遞更多信息,其中涉及的網站建設,網站優化,APP開發,微信小程序開發,大數據平臺開發,區塊鏈技術開發等軟件開發技術細節并不代表本站贊同支持其觀點,并不對其真實性負責。對于署名“陜西弈聰”的作品系本站版權所有,任何人轉載請署名來源,否則陜西弈聰將追究其相關法律責任。
2、本站內容中未聲明為“原創”的內容可能源自其它網站,但并不代表本站支持其觀點,對此帶來的法律糾紛及其它責任與我方無關。如果此內容侵犯了您的權益,請聯系我方進行刪除。