0x01

  • 我们知道 PHP 接收的变量最常用的是 GET,POST,COOKIE 这三个变量。GET变量是附在 url 后传输的,而 POST 变量是放在 http 包中传输的,COOKIE 则是浏览器中储存的,变量最常用的接收变量的方法比如 get 方式是通过 $_GET[],中括号中是变量名,但是是在变量名知道的情况下并且一次只能接收一个变量值,那么怎么在不知道变量名的情况下去动态的接收变量名和变量名对应的值呢,可以通过结合 PHP 中的可变变量和 foreach 遍历的方法来实现这个方法(这个方法是我在看米拓 cms 源码的时候偶然发现的,这里研究了一下,顺便和大家分享一下)。首先大家看一下什么是PHP 中的可变变量

0x02

  • PHP 变量的定义方式,比如说我要定义一个变量名为 var 的值为 test,那么可以这样办:$var="test",定义完之后这个变量名就不可以改变了,如果要修改这个变量名的话,就需要用到 PHP中的可变变量:$$var,以下是可变变量的利用方法,利用可变变量来查询 _COOKIE。
  • 首先呢查看一下网页的 COOKIE

  • 之后用可变变量的方式来查询这个 COOKIE,并且把他打印出来



    为了帮助大家更好的理解这个可变变量,这里贴出了 PHP 官网的一个例子
    <?php

      //You can even add more Dollar Signs

      $Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
// PS:$$var 和 ${$var}的效果是一样的
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a $$$$$$a; //Returns Hello
$$$$$$$a; //Returns World
//... and so on ...//
?>

0x03

  • 动态的查询COOKIE变量

0x04

  • 动态的接收GET传递过来的变量

0x05

  • 动态的接收POST传递过来的变量



0x06

  • 还有一种方法就是 GET,POST 和 COOKIE 三个参数都接收(米拓 cms 就是这样的)

总结

利用 PHP 可变变量来接收传递过来的变量名和变量值确实很方便,但可变变量的利用方式还有很多,有兴趣可以去官网看一看。还有一个就是安全方面的问题,以这种方式接收传递的变量必须进行严格过滤

下面是源码方便粘贴

部分接收的 (异曲同工,所以只贴了一个)

    <!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta charset="utf-8">
</head>
<body>
<?php $test = "_GET";
foreach (${$test} as $key => $value) {
# code...
echo '$key的值是:'."$key"."<br>";
echo '$value的值是:'."$value"."<br>";
}
?>
</body>
</html>

全都接收的

    <!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta charset="utf-8">
</head>
<body>
<?php $var_all = array("_GET", "_POST", "_COOKIE");
foreach ($var_all as $key) {
# code...
foreach ($$key as $_key => $value) {
# code...
echo '$_key的值是:'."$_key"."<br>";
echo '$value的值是:'."$value"."<br>";
}
} ?>
</body>
</html>

PS:如果认为我这个博客有什么问题或者有修改意见的,请一定要告诉我,非常感谢(我的邮箱2412875746@qq.com)

关于PHP动态的接收传递的GET,POST和COOKIE变量的更多相关文章

  1. 前端传递给后端且通过cookie方式,尽量传递id

    前端传递给后端且通过cookie方式,尽量传递id

  2. Android 静态广播和动态广播接收顺序

    Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一 ...

  3. DATAX动态参数数据传递

    实例:ORACLE到ORACLE的数据传递   编写job.xml文件,添加变量参数 执行datax.py文件时记得带参数 格式:./datax.py –p"-Ddbname=*** -Di ...

  4. vue 动态组件,传递参数

    <template> <div class="top"> <div class='nav'> <ul class='navHader'&g ...

  5. jsonp跨域实现单点登录,跨域传递用户信息以及保存cookie注意事项

    网站A:代码:网站a的login.html页面刷新,使用jsonp方式将信息传递给b.com的login.php中去,只需要在b.com中设置一下跨域以及接收参数,然后存到cookei即可, 注意:网 ...

  6. go语言练习:幂、函授接收和返回参数、转义字符、变量和常量

    1.实现a^b次方 package main func main() { r2 := power1(2,4) println(r2) } func power1(a uint64, b uint64) ...

  7. 动态执行SQL语句,接收返回值

    一.exec和sp_executesql介绍 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句.比如,一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件, ...

  8. EasyUI Tree 动态传递参数

    1.问题背景 一般出现在加载的时候,传递参数给后台,进行数据筛选,然后在加载tree渲染数据.所谓动态参数,可以是你的上一级节点node,或者是根节点node. 2.涉及方法 onBeforeLoad ...

  9. JavaScript—之对象参数的引用传递

    变量 1.JavaScript hoisting >>请看例子,我们拿Chrome的console作为JS的运行环境. 上面直接执行console.log(a), 不带一点悬念地抛出了no ...

随机推荐

  1. SQL注入绕过waf的一万种姿势

      绕过waf分类: 白盒绕过: 针对代码审计,有的waf采用代码的方式,编写过滤函数,如下blacklist()函数所示: 1 ........ 2 3 $id=$_GET['id']; 4 5 $ ...

  2. FreeBSD 入门 哲学与玄学

    『哲学与玄学』 FreeBSD 是一种 UNIX 哲学(如模块化,一切皆文件等,见< UNIX 编程艺术>❩的发展,也是学院派的代表作品.她是一套工具集,她存在目的是为了让人们更好的生活. ...

  3. Apache配置 1. 默认虚拟主机

    编辑httpd.conf搜索httpd-vhosts,去掉#号 # vi /usr/local/apache2.4/conf/httpd.conf Include conf/extra/httpd-v ...

  4. CSS篇-样式表、选择器、权重、伪类

    CSS定义 CSS:Cascading Style Sheet(层叠样式表) // 写法 选择器 { 属性名: 属性值; } CSS样式表 (1)三种样式表使用 // 内联样式 <div sty ...

  5. 通过unity Distribution Portal发布华为渠道的游戏

    背景说明 前面几个帖子详细介绍了: Unity Editor安装和Apk打包 手把手教您快速运行Unity提供的华为游戏demo 使用unity完成华为游戏的初始化和华为帐号登录 快速开发Unity游 ...

  6. css盒布局-省份选择盘的实现

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  7. .NET初探源代码生成(Source Generators)

    前言 Source Generators顾名思义代码生成器,可进行创建编译时代码,也就是所谓的编译时元编程,这可让一些运行时映射的代码改为编译时,同样也加快了速度,我们可避免那种昂贵的开销,这是有价值 ...

  8. 优化 ASP.NET Core Docker 镜像的大小

    在这容器化的世界里,我们已经很少直接通过文件发布来运行asp.net core程序了.现在大多数情况下,我们都会使用docker来运行程序.在使用docker之前,我们往往需要打包我们的应用程序.as ...

  9. MongoDB 那些事(一文以蔽之)

    前言 身边一直都有小伙伴在问:MongoDB到底是什么?它有到底什么特性?有什么与众不同?在什么情况下使用MongoDB最合适?以什么样的姿势是最好的?难道就一定要用吗?....说实话,这些问题都问到 ...

  10. 第11 章 : 可观测性:你的应用健康吗?(liveness和readiness)

    课时 11:可观测性:你的应用健康吗?(莫源) 本次课程的分享主要围绕以下五个部分: 介绍一些整体需求的来源: 介绍在 K8s 中 Liveness 和 Readiness 的使用方式: 介绍在 K8 ...