PHP表单处理
表单是PHP与Web页面交互的方法之一,而表单提交数据有两种请求方式,即为GET请求方式和POST请求方式。
针对表单的两种提交方式。PHP提供了三个全局变量,分别是$_GET 、 $_POST 、$REQUEST,用于获取表单提交的数据。
$_GRT
$变量名 = $_GET["表单元素名"];
$_GRT是一个数组类型变量,用于获得表单GET请求方式提交的数据。
通过URL传参(又叫quert string)传递给当地脚本的变量的数组。
注意:给数组不仅仅对method为GET的请求方式生效,而是会针对query string的请求。
示例
index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
<form action="login.php" method="GET">//get请求
<p>姓名: <input type="text" name="username" id="n"></p>
<p>密码: <input type="password" name="passwd" id="p"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
login.php文件
<?php // 向客户端发送响应头信息 header("Content-Type:text/html;charset=utf-8"); // 获取客户端提交的查询参数数据 $username = $_GET["username"]; //获得表单提交的 userName 值,userName 是表单元素 name 名称。 $passwd = $_GET["passwd"]; //得表单提交的 password 值,password 是表单元素 name 名称。 echo "登陆成功"; echo "<br>"; echo "登陆用户名为:{$username}"; echo "<br>"; echo "登陆密码为:{$passwd}"; ?>
$_POST
$变量 = $_POST["表单元素名"];
$_POST 用于获得表单 POST 请求方式提交的数据。
当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。
示例
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 --> <form action="login.php" method="POST"> <!-- 在post请求中,也可以在请求地址中添加查询字符串,也可以通过 $_GET 获取,但并不是 Get请求 --> <!-- <form action="test.php?test=testestestestest" method="POST"> --> <p>姓名: <input type="text" name="username" id="n"></p> <p>密码: <input type="password" name="passwd" id="p"></p> <p><input type="submit" value="提交"></p> </form> </body> </html>
login.php
<?php // 向客户端发送响应头信息 header("Content-Type:text/html;charset=utf-8"); // 获取客户端提交的查询参数数据 $username = $_POST["username"]; $passwd = $_POST["passwd"]; echo "登陆成功"; echo "<br>"; echo "登陆用户名为:{$username}"; echo "<br>"; echo "登陆密码为:{$passwd}"; echo "<br>"; echo "POST方式提交时,携带的查询参数字符串:{$_GET['test']}" ?>
$_REQUEST
`$变量 = $_REQUEST["表单元素名"];`
$_REQUEST 用于获得表单任何请求方式提交的数据。
示例
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 --> <!-- GET 方式发起请求 --> <!-- <form action="test.php" method="get"> --> <!-- POST 方式发起请求 --> <!-- <form action="test.php" method="POST"> --> <!-- 在post请求中,也可以在请求地址中添加查询字符串,也可以通过 $_GET 获取,但并不是 Get请求 --> <form action="login.php?test=testestestestest" method="POST"> <p>姓名: <input type="text" name="username" id="n"></p> <p>密码: <input type="password" name="passwd" id="p"></p> <p><input type="submit" value="提交"></p> </form> </body> </html>
login.php
<?php // 向客户端发送响应头信息 header("Content-Type:text/html;charset=utf-8"); // 获取客户端提交的查询参数数据 $username = $_REQUEST["username"]; $passwd = $_REQUEST["passwd"]; echo "登陆成功"; echo "<br>"; echo "登陆用户名为:{$username}"; echo "<br>"; echo "登陆密码为:{$passwd}"; echo "<br>"; echo "POST方式提交时,携带的查询参数字符串:{$_REQUEST['test']}" ?>
URL传参
URL传参也叫问号传参,是php与web页面交互的方法之一
URL传参,模拟表单GET请求方式,在页面跳转的过程中,铜通通过“?”在URL中添加参数,用于实现跨页面传参的功能语法格式
http://localhost/.xxx.php?参数名=参数值&参数名=参数值...
示例
- check.php ```html <!DOCTYPE html> 跳转页面 // 通过超链接,实现 URL 传参功能。 //check.php:将要跳转到的页面地址。 //?:用于在URL 地址中传递参数。 //id=1:URL 中传递的参数。id 是参数名称,1 是参数值。 //name=Tom:URL 中传递的参数。name 是参数名称,Tom 是参数值。 //age=15:URL 中传递的参数。age 是参数名称,15 是参数值。
- index.php
```php
<?php
header("content-type:text/html;charset=utf-8");
//获得URL中的参数
$id = $_GET["id"];
$name = $_GET["name"];
$age = $_GET["age"];
//获得 URL 中,参数名称为 id 的参数值。
//获得 URL 中,参数名称为 name 的参数值。
//获得 URL 中,参数名称为 age 的参数值。
//输出接收到的数据
echo "id:{$id}<br/>";
echo "name:{$name}<br/>";
echo "age:{$age}<br/>";