【php基础】PHP表单验证03
PHP获取表单
· $_GET数组获取GET方式提交的内容
· $_POST数组获取POST方式提交的内容
· $_COOKIE数组获取COOKIE
· $_REQUEST数组获取GET|POST|COOKIE
示例:
1、GET数组获取GET方式提交的内容
HTML 表单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!DOCTYPE html> <html> <head> <title>GET 表单示例</title> </head> <body> <h1>用户注册表单</h1> <form action= "get_example.php" method= "get" > <label>用户名:</label> <input type= "text" name= "username" required><br> <input type= "submit" value= "提交" > </form> </body> </html> |
get_example.php:
1 2 3 4 5 6 | <?php // 获取用户名 $username = $_GET[ 'username' ]; // 输出用户名 echo "用户名:" . $username; ?> |
2、使用 $_POST 获取 POST 方式提交的内容:
HTML 表单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!DOCTYPE html> <html> <head> <title>POST 表单示例</title> </head> <body> <h1>用户注册表单</h1> <form action= "post_example.php" method= "post" > <label>用户名:</label> <input type= "text" name= "username" required><br> <input type= "submit" value= "提交" > </form> </body> </html> |
post_example.php:
1 2 3 4 5 6 | <?php // 获取用户名 $username = $_POST[ 'username' ]; // 输出用户名 echo "用户名:" . $username; ?> |
3、使用 $_COOKIE 获取 COOKIE:
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>设置用户名</title>
</head>
<body>
<h2>设置用户名</h2>
<form action="get_cookie.php" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
get_cookie.php:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST['username'])){
// 获取用户输入的用户名
$username = $_POST['username'];
// 设置一个名为 "username" 的 COOKIE
setcookie("username", $username, time() + 3600);
// 获取名为 "username" 的 COOKIE
$username = $_COOKIE["username"];
// 输出欢迎消息
echo "欢迎," . $username . "!";
}
}
?>
isset($_POST) 和$_SERVER["REQUEST_METHOD"] 请求方法的区别:
`isset($_POST)` 和 `$_SERVER["REQUEST_METHOD"]` 可以在处理表单提交时用于判断请求的方法。
`isset($_POST)` 是一个用于检查 `$_POST` 超全局数组中是否存在特定的变量或表单字段的函数。当表单使用 POST 方法提交时,表单字段的值会包含在 `$_POST` 中。因此,通过检查 `isset($_POST['field_name'])`,我们可以确定特定的表单字段是否被提交。
例如,如果你的表单中有一个名为 `username` 的字段,你可以使用 `isset($_POST['username'])` 来判断是否提交了这个字段。
另一方面,`$_SERVER["REQUEST_METHOD"]` 是一个包含了当前请求方法的服务器变量。对于 HTTP 请求,常见的方法有 GET、POST、PUT、DELETE 等。通过获取 `$_SERVER["REQUEST_METHOD"]` 的值,我们可以确定当前请求使用的是哪种方法。
当我们想在处理表单提交时只对 POST 请求作出响应时,可以使用 `$_SERVER["REQUEST_METHOD"]`。例如,`$_SERVER["REQUEST_METHOD"] == "POST"` 可用来检查当前请求是否是 POST 方法提交的表单数据。这样就可以将特定的数据处理逻辑限定在 POST 请求中。
综上所述,`isset($_POST)` 主要用于检查是否提交了特定的字段或变量,而 `$_SERVER["REQUEST_METHOD"]` 是用于检查当前请求的方法。二者可以结合使用,来实现对特定请求方法的判断和处理。
4、使用 $_REQUEST 获取 GET|POST|COOKIE:
HTML 表单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html> <html> <head> <title>请求示例</title> </head> <body> <h1>用户注册表单</h1> <form action= "request_example.php" method= "post" > <label>用户名:</label> <input type= "text" name= "username" required><br> <input type= "submit" value= "提交" > </form> <a href= "request_example.php?username=John+Doe" >直接访问</a> </body> </html> |
request_example.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // 获取 GET 请求的用户名 if (isset($_GET[ 'username' ])) { $username = $_GET[ 'username' ]; } // 获取 POST 请求的用户名 if (isset($_POST[ 'username' ])) { $username = $_POST[ 'username' ]; } // 获取 COOKIE 中的用户名 if (isset($_COOKIE[ 'username' ])) { $username = $_COOKIE[ 'username' ]; } // 输出用户名 echo "用户名:" . $username; ?> |
5、sql注入获取 admin对应密码信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <meta charset= "UTF-8" > <form > 用户登录<br/> 账号:<input type= "text" name= "uname" /><br /> 密码:<input type= "password" name= "pwd" /><br /> <input type= "submit" value= "登录" > </form> <?php @$username=$_REQUEST[ 'uname' ]; @$password=$_REQUEST[ 'pwd' ]; //if(isset($_REQUEST['uname'])) if ($_REQUEST[ 'uname' ] != '' and $_REQUEST[ 'pwd' ] != "" ) { // if($username=="admin" and $password=="123456"){ // echo '登录成功'; $conn=mysqli_connect( "localhost" , 'root' , 'root' , 'php' ); $sql = 'select * from admin where username = "' .$username. '" and password ="' .$password. '"' ; echo $sql; //创建查询语句 $b=mysqli_query($conn,$sql); $c=mysqli_fetch_array($b); #mysqli_fetch_array():这是一个 MySQLi 函数,用于从查询结果中获取数据,并将其存储在一个数组中。 echo "你的密码是:" .$c[ 'password' ]; if ($username==$c[ '$username' ]){ { echo '登录成功' ;} } } else { echo '账号密码错误' ;} //关闭连接 mysqli_close($conn); ?> #测试代码 admin "or 1=1 -- qwe |
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/17707538.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现