php表單
PHP 表單處理
有一點(diǎn)很重要的事情值得注意,當(dāng)處理 HTML 表單時(shí),PHP 能把來(lái)自 HTML 頁(yè)面中的表單元素自動(dòng)變成可供 PHP 腳本使用。
實(shí)例
下面的實(shí)例包含了一個(gè) HTML 表單,帶有兩個(gè)輸入框和一個(gè)提交按鈕。
form.html 文件代碼如下:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <form action="welcome.php" method="post"> 名字: <input type="text" name="fname"> 年齡: <input type="text" name="age"> <input type="submit" value="提交"> </form> </body> </html>
當(dāng)用戶(hù)填寫(xiě)完上面的表單并點(diǎn)擊提交按鈕時(shí),表單的數(shù)據(jù)會(huì)被送往名為 "welcome.php" 的 PHP 文件:
welcome.php 文件如下所示:
歡迎 <?php echo $_POST["fname"]; ?>!<br> 你的年齡是 <?php echo $_POST["age"]; ?> 歲。
表單驗(yàn)證
應(yīng)該在任何可能的時(shí)候?qū)τ脩?hù)輸入進(jìn)行驗(yàn)證(通過(guò)客戶(hù)端腳本)。瀏覽器驗(yàn)證速度更快,并且可以減輕服務(wù)器的負(fù)載。
如果用戶(hù)輸入需要插入數(shù)據(jù)庫(kù),您應(yīng)該考慮使用服務(wù)器驗(yàn)證。在服務(wù)器驗(yàn)證表單的一種好的方式是,把表單傳給它自己,而不是跳轉(zhuǎn)到不同的頁(yè)面。這樣用戶(hù)就可以在同一張表單頁(yè)面得到錯(cuò)誤信息。用戶(hù)也就更容易發(fā)現(xiàn)錯(cuò)誤了。
處理GET請(qǐng)求,實(shí)現(xiàn)的功能是輸入姓名后頁(yè)面顯示“Hello XXX”, 創(chuàng)建html文件hello.html。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>歡迎</title> </head> <body> <form action="hello.php" method="get"> 姓名<input name="name" type="text"/> <input type="submit"/> </form> </body> </html>
創(chuàng)建PHP文件hello.php
<?php header("Content-type: text/html; charset=utf-8"); if(isset($_GET['name'])&&$_GET['name']){//如果有值且不為空 echo 'Hello '.$_GET['name']; }else{ echo 'Please input name'; }
處理POST請(qǐng)求,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的加法運(yùn)算功能, 創(chuàng)建html文件add.html
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>相加</title> </head> <body> <form action="add.php" method="post"> <input name="num1" type="text"/> + <input name="num2" type="text"/> <input type="submit" value="相加"/> </form> </body> </html>
創(chuàng)建PHP文件add.php
<?php if($_POST['num1']&&$_POST['num2']){ echo $_POST['num1']+$_POST['num2']; }else{ echo '請(qǐng)不要空值'; }
Post請(qǐng)求把表單數(shù)據(jù)放在http請(qǐng)求體中,并且沒(méi)有長(zhǎng)度限制
form action=""意思是:form是表單,action是轉(zhuǎn)向地址,即form表單需要提交到哪里