十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章運用簡單易懂的例子給大家介紹如何實現(xiàn)form表單在PHP中,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、表單的基本使用
HTML 中有一個專門用于提交數(shù)據(jù)的標簽:
按照目前的情況,用戶第一次請求得到這個表單頁面,填寫完表單內(nèi)容,點擊登錄,表單會自動發(fā)送到login.php ,剩下的問題就是要考慮如何在 login.php 中獲取到用戶提交過來的內(nèi)容.
PHP 中有三個超全局變量專門用來獲取表單提交內(nèi)容:
$_GET :用于獲取以 GET 方式提交的內(nèi)容
$_POST :用于獲取以 POST 方式提交的內(nèi)容
$_REQUEST :用于獲取 GET 或 POST 方式提交的內(nèi)容
借助 $_POST 或者 $_REQUEST 就可以獲取到表單提交的內(nèi)容:
1.1、提交地址
action 提交地址指的是這個表單填寫完成過后點擊提交,發(fā)送請求的請求地址是什么。
從便于維護的角度考慮,一般我們最常見的都是提交給當前文件,然后在當前文件中判斷是否是表單提交請求:另外,建議使用
$_SERVER['PHP_SELF']
動態(tài)獲取當前頁面訪問路徑,這樣就不用因為文件重命名或者網(wǎng)站目錄結(jié)構(gòu)調(diào)整而修改代碼了:
1.2、提交方式
method 可以用于設(shè)置表單提交的方式,目前我們所認識的就是最常見兩種表單提交方式: GET 和 POST 。
從效果上來看,兩者都可以將數(shù)據(jù)提交到服務(wù)端,但是從實現(xiàn)提交的原理上兩者有很大的不同:
GET
表單數(shù)據(jù)是通過 URL 中的 ? 參數(shù)傳遞到服務(wù)端的
可以在地址欄中看到提交的內(nèi)容
數(shù)據(jù)長度有限制,因為 URL 地址長度有限(2000個字符)
POST
表單數(shù)據(jù)是通過請求體傳遞到服務(wù)端的,我們在界面上看不到
可以提交任何類型的數(shù)據(jù),包括文件
由于界面上看不見,瀏覽器也不儲存,所以更安全
至于什么情況下應(yīng)該選用哪種方式,這個需要結(jié)合業(yè)務(wù)場景和這兩種方式各自的特點來決定,沒有絕對的答案,只能給出一些原則:
絕不能使用 GET 來發(fā)送密碼或其他敏感信息?。。?br/> 應(yīng)該想清楚這次請求到底主要是去拿東西,還是去送東西
2、常見表單元素處理
至于表單元素中的文本框文本域一類的元素,都是直接將元素的 name 屬性值作為鍵,用戶填寫的信息作為值,發(fā)送到服務(wù)端。但是表單元素中還有一些比較特殊的表單元素需要單獨考慮:
2.1單選按鈕
2.2、復(fù)選按鈕
如果需要同時提交多個選中項,可以在 name 屬性后面 跟上 [] :
https://www.php.net/manual/zh/faq.html.php#faq.html.arrays
最終提交到服務(wù)端,通過 $_POST 接收到的是一個索引數(shù)組.
2.3、選擇框
2.4文件上傳
type 屬性為 file 的 input 元素可以通過表單提交文件(上傳文件),服務(wù)端 PHP 可以通過 $_FILES 獲取上傳的文件信息。
0 // 詳細的錯誤碼說明:http://php.net/manual/zh/features.file‐upload.errors.php if ($_FILES['file']['error'] === 0) { // PHP 在會自動接收客戶端上傳的文件到一個臨時的目錄 $temp_file = $_FILES['file']['tmp_name']; // 我們只需要把文件保存到我們指定上傳目錄 $target_file = '../static/uploads/' . $_FILES['file']['name']; if (move_uploaded_file($temp_file, $target_file)) { $image_file = '/static/uploads/' . $_FILES['file']['name']; } }
$_FILES 同樣也是一個關(guān)聯(lián)數(shù)組,鍵為表單的 name ,內(nèi)容如下:
array(1) { ["avatar"]=> array(5) { ["name"]=> string(17) "demo.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(27) "C:\Windows\Temp\php786C.tmp" ["error"]=> int(0) ["size"]=> int(29501) } }
關(guān)于如何實現(xiàn)form表單在PHP中就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。