當前位置:
首頁 > 知識 > PHP 表單和用戶輸入

PHP 表單和用戶輸入

PHP 中的 $_GET 和 $_POST 變數用於檢索表單中的信息,比如用戶輸入。



PHP 表單和用戶輸入

PHP 表單處理

有一點很重要的事情值得注意,當處理 HTML 表單時,PHP 能把來自 HTML 頁面中的表單元素自動變成可供 PHP 腳本使用。

實例

下面的實例包含了一個 HTML 表單,帶有兩個輸入框和一個提交按鈕。

form.html 文件代碼:

<pre><html><head><metacharset="utf-8"><title>菜鳥教程(runoob.com)</title></head><body><formaction="welcome.php"method="post">名字: <inputtype="text"name="fname">年齡: <inputtype="text"name="age"><inputtype="submit"value="提交"></form></body></html>

當用戶填寫完上面的表單並點擊提交按鈕時,表單的數據會被送往名為 "welcome.php" 的 PHP 文件:

welcome.php 文件代碼:

<pre>歡迎 <?phpecho $_POST["fname"]; ?>!<br>你的年齡是 <?phpecho $_POST["age"]; ?> 歲。

通過瀏覽器訪問演示如下:

PHP 表單和用戶輸入

PHP 獲取下拉菜單的數據

PHP 下拉菜單單選

以下實例我們設置了下拉菜單三個選項,表單使用 GET 方式獲取數據,action 屬性值為空表示提交到當前腳本,我們可以通過 select 的 name 屬性獲取下拉菜單的值:

php_form_select.php 文件代碼:

<?php$q = isset($_GET["q"])? htmlspecialchars($_GET["q"]) : "";if($q){if($q =="RUNOOB"){echo"菜鳥教程<br>http://www.runoob.com"; }elseif($q =="GOOGLE"){echo"Google 搜索<br>http://www.google.com"; }elseif($q =="TAOBAO"){echo"淘寶<br>http://www.taobao.com"; }}else{?>

<formaction=""method="get"><selectname="q"><optionvalue="">選擇一個站點:</option><optionvalue="RUNOOB">Runoob</option><optionvalue="GOOGLE">Google</option><optionvalue="TAOBAO">Taobao</option></select><inputtype="submit"value="提交"></form>

<?php}?>

PHP 下拉菜單多選

如果下拉菜單是多選的( multiple="multiple"),我們可以通過將設置 select name="q[]" 以數組的方式獲取,以下使用 POST 方式提交,代碼如下所示:

php_form_select_mul.php 文件代碼:

<?php$q = isset($_POST["q"])? $_POST["q"] : "";if(is_array($q)){$sites = array("RUNOOB" => " http://www.runoob.com", "GOOGLE" => "Google 搜索: http://www.google.com", "TAOBAO" => "淘寶: http://www.taobao.com", ); foreach($qas$val){// PHP_EOL 為常量,用於換行echo$sites[$val] . PHP_EOL; }}else{?>

<formaction=""method="post"><selectmultiple="multiple"name="q[]"><optionvalue="">選擇一個站點:</option><optionvalue="RUNOOB">Runoob</option><optionvalue="GOOGLE">Google</option><optionvalue="TAOBAO">Taobao</option></select><inputtype="submit"value="提交"></form>

<?php}?>



PHP 表單和用戶輸入

單選按鈕表單

PHP 單選按鈕表單中 name 屬性的值是一致的,value 值是不同的,代碼如下所示:

php_form_radio.php 文件代碼:

<?php$q = isset($_GET["q"])? htmlspecialchars($_GET["q"]) : "";if($q){if($q =="RUNOOB"){echo"菜鳥教程<br>http://www.runoob.com"; }elseif($q =="GOOGLE"){echo"Google 搜索<br>http://www.google.com"; }elseif($q =="TAOBAO"){echo"淘寶<br>http://www.taobao.com"; }}else{

?><formaction=""method="get"><inputtype="radio"name="q"value="RUNOOB"/>Runoob <inputtype="radio"name="q"value="GOOGLE"/>Google <inputtype="radio"name="q"value="TAOBAO"/>Taobao <inputtype="submit"value="提交"></form>

<?php}?>



checkbox 複選框

PHP checkbox 複選框可以選擇多個值:

php_form_select_checkbox.php 文件代碼:

<?php$q = isset($_POST["q"])? $_POST["q"] : "";if(is_array($q)){$sites = array("RUNOOB" => http://www.runoob.com", "GOOGLE" => "Google 搜索: http://www.google.com", "TAOBAO" => "淘寶: http://www.taobao.com", ); foreach($qas$val){// PHP_EOL 為常量,用於換行echo$sites[$val] . PHP_EOL; }}else{

?><formaction=""method="post"><inputtype="checkbox"name="q[]"value="RUNOOB"> Runoob<br><inputtype="checkbox"name="q[]"value="GOOGLE"> Google<br><inputtype="checkbox"name="q[]"value="TAOBAO"> Taobao<br><inputtype="submit"value="提交"></form>

<?php}?>



表單驗證

應該在任何可能的時候對用戶輸入進行驗證(通過客戶端腳本)。瀏覽器驗證速度更快,並且可以減輕伺服器的負載。

如果用戶輸入需要插入資料庫,您應該考慮使用伺服器驗證。在伺服器驗證表單的一種好的方式是,把表單傳給它自己,而不是跳轉到不同的頁面。這樣用戶就可以在同一張表單頁面得到錯誤信息。用戶也就更容易發現錯誤了。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

PHP 面向對象
PHP 表單-必需欄位
PHP 循環-While 循環
PHP If……Else 語句
PHP Switch 語句

TAG:程序員小新人學習 |

您可能感興趣

不用再輸入繁瑣的驗證碼了?Google隱形reCAPTCHA技術正式版出爐
如何使用Python獲取用戶的輸入
LINUX-輸入子系統
「MD PHOTO」 林秀晶李多喜等出席tvN新劇《請輸入搜索詞:WWW》發布會
PHP輸入驗證安全漏洞預警
Valve公布SteamVR「骨骼輸入」輸入系統實現逼真手部動作
OPPOK3輸入法:語音輸入、文檔掃描還有遊戲鍵盤,你會玩嗎
Valve研發出SteamVR骨骼輸入系統,可讓手部的VR交互更精確
Valve研發出SteamVR骨骼輸入系統,可讓VR交互更准
SteamVR獲得新輸入系統 可讓控制器適配任意VR遊戲
買HDMI輸入藍光錄像機 就選CYZ10
和弦 CHORD HUGO2 外置解碼器測評報告「二」耳機部分與外接數字輸入測評「Soomal」
用大寫字母輸入 Linux 命令以將其作為 sudo 用戶運行
通過Burp Macros自動化平台對Web應用的模糊輸入進行處理
[視頻]大量iPad Pro用戶反饋屏幕卡頓、鍵盤輸入無效問題
V社推SteamVR輸入系統 自定義配置增強設備兼容性
EMC-EMI輸入濾波器的設計
iPhone XS Max 下載應用總是要輸入密碼,如何設置?
觸寶進入印度市場,成為OPPO新手機預裝輸入法
請在這裡輸入標題 I FYI