预定义超全局变量
$_GET
- $_GET 是一个预定义数组。
- 作用域是超全局,脚本的任何地方都可以使用。
- 接收从浏览器客户端用户GET 方式传递到服务器的参数。
- GET 传参的参数名做$_GET 数组的key,参数值作为数组的value。
- GET 传参时,直接将参数拼接到URL 中即可。
<?php
var_dump($_GET);
?>
访问该页面

随后更改url,在url后加上?username=order&password=123456
访问结果如图

传参成功
$_POST
- $_POST 用于接收浏览器客户端用户以POST 方式传递过来的参数。
- POST 传参,参数在请求正文中
先写一个post传参用的表单,方法设置post,并且设置目的文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>posthtml</title>
</head>
<body>
<form method="post" action="post.php">
username:<input type="text" name="username">
password:<input type="password" name="password">
<input type="submit" name="submit">
</form>
</body>
</html>
随后写一个接收post参数的php
<meta charset="UTF-8">
<?php
echo "<pre>";
var_dump($_POST);
?>

在该页面输入内容
order:123456
随后观察能否传参
提交过后发现传参成功,并且url变为接受参数的php文件位置

$_COOKIE
COOKIE 技术
为了弥补HTTP 协议的无状态性,保持用户的会话状态,需要使用Cookie 技术。
Cookie 过程:
- 用户提交账密
- 服务器进行身份认证
- 下发身份证,下发Cookie。
- 浏览器客户端用户所有的请求都会携带身份信息,携带Cookie 信息。
- 整体流程体现为,保持了HTTP 会话的状态性。
先写一个测试用的cookie.php
<meta charset="UTF-8">
<?php
echo "<pre>";
var_dump($_COOKIE);
?>
访问时没有参数

控制台写入两条cookie

写入后刷新页面即可看到传递的参数

$_REQUEST
$_REQUEST,默认包含了$_GET,$_POST,$_COOKIE 数组中的所有变量。以上提到的三个数组,包含了浏览器客户端的三大传参方式,也称GPC。
但是$_REQUEST 数组在接收参数的时候,会受到一个PHP 选项的控制。
首先需要编辑此处配置文件
/php/php-5.4.45/php.ini
request_order = "GP"
变为
request_order = "GPC"


重启phpstudy
写一个request的php
<meta charset="UTF-8">
<?php
echo "<pre>";
var_dump($_REQUEST);
?>

本来无参数,并且刚刚开启了接受cookie传参
使用cookie的传参方式看看能不能接到

刷新页面后成功接收到参数

$GLOBALS
<meta charset="UTF-8">
<?php
echo "<pre>";
var_dump($GLOBALS);
?>

$_ENV
<meta charset="UTF-8">
<?php
echo "<pre>";
var_dump($_ENV);
?>

更换php版本


$_FILE
先写一份上传文件用的表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form
action="file.php"
method="post"
enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="submit">
</form>
</body>
</html>
然后写一份文件上传的php
<meta charset="UTF-8">
<?php
echo "<pre>";
var_dump($_FILES);
?>
访问页面


选择图片上传后

但是此处它传到临时文件了,并且很快自动删除,相当于最后服务器仍然没有该文件
需要修改一下,让它能保存到
修改php文件
<meta charset="UTF-8">
<?php
echo "<pre>";
$tmp_path=$_FILES['file']['tmp_name'];
$target_path="./png/".$_FILES['file']['name'];
// echo $target_path;
// echo $tmp_path;
$flag=move_uploaded_file($tmp_path,$target_path);
if($flag){
echo "upload to {$target_path} successfully<br>";
}else{
echo "failed<br>";
}
?>
随后上传图片

成功显示加入的显示信息以及成功上传图片到指定位置

可以正常打开

1807

被折叠的 条评论
为什么被折叠?



