實(shí)例講解PHP表單處理
PHP 超全局變量 $_GET 和 $_POST 用于收集表單數(shù)據(jù)(form-data)。
PHP - 一個簡單的 HTML 表單
下面的例子顯示了一個簡單的 HTML 表單,它包含兩個輸入字段和一個提交按鈕:
實(shí)例
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
當(dāng)用戶填寫此表單并點(diǎn)擊提交按鈕后,表單數(shù)據(jù)會發(fā)送到名為 "welcome.php" 的 PHP 文件供處理。表單數(shù)據(jù)是通過 HTTP POST 方法發(fā)送的。
如需顯示出被提交的數(shù)據(jù),您可以簡單地輸出(echo)所有變量。"welcome.php" 文件是這樣的:
<html> <body> Welcome <?php echo $_POST["name"]; ?><br> Your email address is: <?php echo $_POST["email"]; ?> </body> </html>
輸出:
Welcome John
Your email address is john.doe@example.com
使用 HTTP GET 方法也能得到相同的結(jié)果:
實(shí)例
<html> <body> <form action="welcome_get.php" method="get"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
"welcome_get.php" 是這樣的:
<html> <body> Welcome <?php echo $_GET["name"]; ?><br> Your email address is: <?php echo $_GET["email"]; ?> </body> </html>
上面的代碼很簡單。不過,最重要的內(nèi)容被漏掉了。您需要對表單數(shù)據(jù)進(jìn)行驗(yàn)證,以防止腳本出現(xiàn)漏洞。
注意:在處理 PHP 表單時請關(guān)注安全!
本頁未包含任何表單驗(yàn)證程序,它只向我們展示如何發(fā)送并接收表單數(shù)據(jù)。
不過稍后的章節(jié)會為您講解如何提高 PHP 表單的安全性!對表單適當(dāng)?shù)陌踩?yàn)證對于抵御黑客攻擊和垃圾郵件非常重要!
GET vs. POST
GET 和 POST 都創(chuàng)建數(shù)組(例如,array( key => value, key2 => value2, key3 => value3, ...))。此數(shù)組包含鍵/值對,其中的鍵是表單控件的名稱,而值是來自用戶的輸入數(shù)據(jù)。
GET 和 POST 被視作 $_GET 和 $_POST。它們是超全局變量,這意味著對它們的訪問無需考慮作用域 - 無需任何特殊代碼,您能夠從任何函數(shù)、類或文件訪問它們。
$_GET 是通過 URL 參數(shù)傳遞到當(dāng)前腳本的變量數(shù)組。
$_POST 是通過 HTTP POST 傳遞到當(dāng)前腳本的變量數(shù)組。
何時使用 GET?
通過 GET 方法從表單發(fā)送的信息對任何人都是可見的(所有變量名和值都顯示在 URL 中)。GET 對所發(fā)送信息的數(shù)量也有限制。限制在大于 2000 個字符。不過,由于變量顯示在 URL 中,把頁面添加到書簽中也更為方便。
GET 可用于發(fā)送非敏感的數(shù)據(jù)。
注釋:絕不能使用 GET 來發(fā)送密碼或其他敏感信息!
何時使用 POST?
通過 POST 方法從表單發(fā)送的信息對其他人是不可見的(所有名稱/值會被嵌入 HTTP 請求的主體中),并且對所發(fā)送信息的數(shù)量也無限制。
此外 POST 支持高階功能,比如在向服務(wù)器上傳文件時進(jìn)行 multi-part 二進(jìn)制輸入。
不過,由于變量未顯示在 URL 中,也就無法將頁面添加到書簽。
提示:開發(fā)者偏愛 POST 來發(fā)送表單數(shù)據(jù)。
接下來讓我們看看如何安全地處理 PHP 表單!
相關(guān)文章
通過實(shí)例解析PHP數(shù)據(jù)類型轉(zhuǎn)換方法
這篇文章主要介紹了通過實(shí)例解析PHP數(shù)據(jù)類型轉(zhuǎn)換方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07php include的妙用,實(shí)現(xiàn)路徑加密
用這種方法比較繁瑣,只能隱藏后臺腳本的路徑,前端的腳本路徑仍然可以在源文件中看得到(baseref) 在地址欄上看到的地址都是index.php?xxxxxxxx2008-07-07php 上一篇,下一篇文章實(shí)現(xiàn)代碼與原理說明
就是對id對進(jìn)行order by id desc 或 order by id asc進(jìn)行排序,然后再判斷比當(dāng)前id> or小于當(dāng)前文章id的相同欄目的文章。2010-05-05PHP設(shè)計(jì)模式之簡單工廠和工廠模式實(shí)例分析
這篇文章主要介紹了PHP設(shè)計(jì)模式之簡單工廠和工廠模式,結(jié)合實(shí)例形式分析了php設(shè)計(jì)模式中工廠模式的實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-03-03