预定义超全局变量练习演示

预定义超全局变量

$_GET

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

访问该页面

image-20231023155630864

随后更改url,在url后加上?username=order&password=123456

访问结果如图

image-20231023155824659

传参成功

$_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);
?>

image-20231023160855493

在该页面输入内容

order:123456

随后观察能否传参

提交过后发现传参成功,并且url变为接受参数的php文件位置

image-20231023161007133

$_COOKIE

COOKIE 技术

为了弥补HTTP 协议的无状态性,保持用户的会话状态,需要使用Cookie 技术。

Cookie 过程:

  • 用户提交账密
  • 服务器进行身份认证
  • 下发身份证,下发Cookie。
  • 浏览器客户端用户所有的请求都会携带身份信息,携带Cookie 信息。
  • 整体流程体现为,保持了HTTP 会话的状态性。

先写一个测试用的cookie.php

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

访问时没有参数

image-20231023162007707

控制台写入两条cookie

image-20231023162054200

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

image-20231023162131057

$_REQUEST

$_REQUEST,默认包含了$_GET$_POST$_COOKIE 数组中的所有变量。以上提到的三个数组,包含了浏览器客户端的三大传参方式,也称GPC。

但是$_REQUEST 数组在接收参数的时候,会受到一个PHP 选项的控制。

首先需要编辑此处配置文件

/php/php-5.4.45/php.ini
request_order = "GP"
变为
request_order = "GPC"

image-20231023162647253

image-20231023162657983

重启phpstudy

写一个request的php

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

image-20231023162923162

本来无参数,并且刚刚开启了接受cookie传参

使用cookie的传参方式看看能不能接到

image-20231023163024601

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

image-20231023163103163

$GLOBALS

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

image-20231023163859187

$_ENV

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

image-20231023164054675

更换php版本

image-20231023164204451

image-20231023164220759

$_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);
?>

访问页面

image-20231023165402381

image-20231023165413371

选择图片上传后

image-20231023165442897

但是此处它传到临时文件了,并且很快自动删除,相当于最后服务器仍然没有该文件

需要修改一下,让它能保存到

修改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>";
    }
?>

随后上传图片

image-20231023171755634

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

image-20231023171841877

可以正常打开

image-20231023171953584

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值