Fork me on GitHub

【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

 

  

  

 

 

  

posted @   橘子偏爱橙子  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示