php表單

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表單需要提交到哪裡

繼續學習
||
<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>