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表单需要提交到哪里
下一节