PHP 表單處理
有一點很重要的事情值得注意,當處理HTML 表單時,PHP 能把來自HTML 頁面中的表單元素自動變成可供PHP 腳本使用。
實例
下面的實例包含了一個 HTML 表單,有兩個輸入框和一個提交按鈕。
form.html 文件代碼如下:
<html> <head> <meta charset="utf-8"> <title>php中文网(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>
當使用者填寫完上面的表單並點擊提交按鈕時,表單的資料會被送到名為"welcome.php" 的PHP 文件:
welcome.php 檔案如下所示:
欢迎 <?php echo $_POST["fname"]; ?>!<br> 你的年龄是 <?php echo $_POST["age"]; ?> 岁。
表單驗證
應該在任何可能的時候對使用者輸入進行驗證(透過客戶端腳本)。瀏覽器驗證速度更快,並且可以減輕伺服器的負載。
如果使用者輸入需要插入資料庫,您應該考慮使用伺服器驗證。在伺服器驗證表單的一個很好的方法是,把表單傳給它自己,而不是跳到不同的頁面。這樣使用者就可以在同一張表單頁面得到錯誤訊息。用戶也就更容易發現錯誤了。
處理GET請求,實現的功能是輸入姓名後頁面顯示“Hello XXX”, 建立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>
建立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請求,實作一個簡單的加法運算功能, 建立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>
建立PHP檔案add. php
<?php if($_POST['num1']&&$_POST['num2']){ echo $_POST['num1']+$_POST['num2']; }else{ echo '请不要空值'; }
Post請求把表單資料放在http請求體中,並且沒有長度限制
form action=""意思是:form是表單,action是轉向地址,即form表單需要提交到哪裡
下一節