最常见的用户交互就是用户填写的提交表单,服务器返回相应的结果。这一过程需要用PHP在服务器端来实现。
因为主要是练习php对表单提交的实现,所以不追求表单的外观完美,而是追求能够将数据提交。
表单处理三步
1.接收数据并校验数据
2.持久性(将数据保存到文件)
3.响应(服务器端的反馈)
1.首先先用html简单实现一个表单的外形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录界面</title>
</head>
<body>
<table align="center">
<tr>
<td>编号:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="years"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="e-mail"></td>
</tr>
<tr>
<td>网址:</td>
<td><input type="text" name="ad"></td>
</tr>
<tr>
<td><input type="submit" name="login" value="登录"></td>
</tr>
</table>
</body>
</html>
上面的代码写出来就会展现下面的效果。
2.完善表单处理
要让表单能够从客户端提交到服务器端,我们需要实现以下几步:
- 将表单放在<form></form>标签当中,并添加action、method属性,来实现动态交互。
- 给每一个<input>标签添加name属性,充当提交数据的键值对中的键(也就相当于是<input>标签的名字)。
- 每一个表单都需要有一个提交按钮(不然没有按钮你怎么提交呢)。
<form action="user-info.php" method="get">
<table align="center">
<tr>
<td>编号:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="years"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="e-mail"></td>
</tr>
<tr>
<td>网址:</td>
<td><input type="text" name="ad"></td>
</tr>
<tr>
<td><input type="submit" name="login" value="登录"></td>
</tr>
</table>
</form>
我们可以看到在URL栏当中增加了六个键值对,刚好就是对应着 编号、姓名、年龄、邮箱、网址、和登录按钮
3.服务器端接收提交的数据
在之前添加<form></form>标签当中,有一个action的属性,它告诉了我们要把数据提交到什么地方。
于是我们就需要在action告诉我们的地方进行数据的接收
method有很九种发送表单数据的方式,下面列举了相对来说最常用的三种方式
<?php
//用于接收URL地址中提交的数据
var_dump($_GET);
//用于接收请求体中提交的数据
var_dump($_POST);
//$_GET + $_POST两者均可
var_dump($_REQUEST);
?>
注意:一般情况下,我们为了便于维护,都是将表单提交给当前页面本身。
//action提交给当前页面本身,方式是post
<form action="$_SERVER['REQUEST_METHOD']" method="post">
我们可以在接收页面的头部添加表单的逻辑接收,这样就可以对接收到的数据进行操作显示。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
//请求的方式是POST,当前点击按钮产生请求
var_dump($_POST);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录界面</title>
</head>
<body>
<form action="$_SERVER['REQUEST_METHOD']" method="post">
<table align="center">
<tr>
<td>编号:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="years"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="e-mail"></td>
</tr>
<tr>
<td>网址:</td>
<td><input type="text" name="ad"></td>
</tr>
<tr>
<td><input type="submit" name="login" value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
这样能够将数据提交到其他页面,并对数据进行操作。但是上面的过程主要是实现提交和接受数据,中间肯定涉及到安全性,填写内容的合法性。之后会仔细说明。