开发者学堂课程【Ajax 前端开发入门与实战:PHP 的基础语法 get 请求参数的获取】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/595/detail/8520
PHP 的基础语法 get请求参数的获取
讲解非常重要的知识点:预定义变量
讲解预定义变量之前,要了解关于请求类型以及请求参数,那么可以把关注点回到之前的动态网站 dweb/,在 dewb/ 中每一个水果都可以点击,点击后会跳转到水果的详情界面,不管点击什么水果会发现访问的是 detail1.php 界面。
对于同一个界面来说,怎么能根据点击的不同而展示出不同的内容呢?
在 detail1.php 后有一个 ?
flag= 一个值,代表的就是请求参数,也就是每一个水果的点击确实访问的只有一个界面就是 detail1.php ,但是通过 ?
flag 值的差异会造成 detail1.php 根据参数的不同而加载不同的数据,而这就是动态网站上的本质。
动态网站的本质就是只有一个界面,根据参数的不同加载不同的数据,比如将 ?flag= 的值变为 apple,就会展示出苹果相关的信息,这里 ?flag=apple 就是请求参数,非常重要。
请求参数是通过 ?的方式和 url 进行连接,这种方式认为是 get 请求,?flag=apple 代表的是 get 请求参数。
除了get请求,还有一个 post 请求。
post 请求和 get 请求最大的区别在于:
Post 请求也是有参数的,不过它的参数不是跟在 url 的后边,而是跟在当中,也就是不能在地址栏当中看到参数,只能在请求体里看到参数。
请求可以携带一些参数,动态网站根据所携带的参数的不同,加载不同的数据。
举例:
在 PHP 文件下创建 login 文件,以登陆的界面进行 get 请求和 post 请求的演示:
在 login 文件中创建新的file 保存文件名是 login.html,再创建一个 file 文件名是check.php。check.php 是用来做用户名和密码的校验。
当用户输入正确的用户名和正确的密码后将会有一种显示,当用户输入错误的用户名密码后将会有错误的提示。
所以 check.php 要做的事情是获取到用户所输入的用户名和密码进行校验的工作。
首先在 check.php 中将相关代码写出来:
<?php
echo "checkUsername";
?>
在 login.html 中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<h1>登录界面</h1>
<form action="check.php" method="get">
//在form表单中进行请求,action 就是点击时请求的后端界面,method 中可以是get请求,也可以是 post请求。
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交"> //
提交按钮
</form>
</body>
</html>
进行测试:
在 index of / 中 点击 php 里面有 login的文件夹点击 login.html 显示出:
登陆界面
用户名:
密码:
这时输入用过户名 admin和密码123点击提交后会请求到 check.php 将用户名和密码带过来。
这时可以看到 check.php 已经输出了内容。
现在的目的是当请求到 check.php 时将参数携带过来之后,让这个界面检查一下这个用户名和密码是不是正确的。
可以看到 Get 请求参数确确实实是跟在 url 后面的,以 ? 的方式进行连接,如果有多个参数的话,参数与参数之间通过 & 进行连接,这是 get 请求。
将 admin 和123 作校验,方法是可以查询数据库,也可以简单做一些条件判断,首先需要把 admin和123获取出来。
怎么进行获取就是本节内容:预定义变量:
$ GET[ ]
$ POST[ ]
由于现在是 get请求,通过 get 请求请求到 cheak.php 界面,那么对于这个界面来说想要获取到携带过来的参数,在 cheak.php 就需要写入:
$username = $_GET["username"];
$password = $_GET["password" ];
//按道理来说,这里面的代码应该要查询数据库
if($username == "admin”8.8 $password - "123"){
echo "Login Success";
}else {
echo "Login Falied";
}
?>
回到界面中进行测试:
登陆界面
用户名:
密码:
输入 admin 和123点击提交之后会显示:
Login Succsee
根据用户传递过来的 username 和 password 做条件判断后,进行到下一个分值中,如果将密码输错会出现:
Login Falied
提交的同样是 cheak.php 界面,这个界面会通过用户所传递过来的参数,根据参数的不同而进行不同的逻辑条件判断。
Get 请求参数就是跟在 url 的后边,通过 ? 进行连接,如果有多个参数用 & 进行连接。
在 php 界面中想要获取到 get 请求过来的参数,通过$ GET [ ] 就可以进行获取,的到参数后在做一个逻辑的判断。
预定义变量
A、请求类型
请求有时候是需要携带参数的,用来标识特定的要求,根据参数携带位置的不同可以简单的把请求分为 Get 请求和 Post 请求 v
a)Get 请求:参数在 uRL 后面,多个参数用&进行连接
b)Post 请求:参数在请求体中。
B、获取请求参数的值
$ GET[ ]
$ POST[ ]