温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP创建数组的方法和url可以传递数组解析

发布时间:2020-07-09 11:19:50 来源:网络 阅读:1728 作者:菜鹅小生 栏目:安全技术

问题:
为什么在url中可以使用url?a[]=123的形式传递数组。
问题起源
来自一道hash函数漏洞的题目,当函数处理数组的时候,可以利用函数的漏洞。传递数组需要在url中传递。当时也是对php了解不够透彻,数组的形式只知array()的形式。
问题解决:首先应该了解PHP中创建数组的几种形式。简单在下面介绍一下。
第一种

$array=(‘$key1’=>’$value1’,’$key2’=>’$value2’……)

这种格式需要用户指定数组中的键和值。
例如:

<?php
$a=array(‘a’=>’123’,’b’=>’456’);
Print_r($a);
?>

输出结果
PHP创建数组的方法和url可以传递数组解析
第二种

$array=array(‘value1’,’value2’)

这种格式不需要用户指定键名,只需要给定值就可以。键名会自动创建,键名为数字,从零开始往后一次添加。
例如:

<?php
$b=array(‘abc’,’efg’);
Print_r($b);
?>

输出结果:
PHP创建数组的方法和url可以传递数组解析
第三种

$c[‘key1’]=‘value1’

这种格式是将键放在中括号中,将值直接用等号赋值。
例如:

<?php
$c['a']='yaun1';
$c['b']='yaun2’;
print_r($c);
?>

输出结果:
PHP创建数组的方法和url可以传递数组解析
第四种

$d[]=’value’;

这种这是连中括号里的键都不用写,直接赋值就可以。键的名字会从零开始累加给各个值的键。
例如:

<?php
$e[]=’one’;
$e[]=’two’;
Print_r($e);
?>

输出结果:
PHP创建数组的方法和url可以传递数组解析

最基本的创建数组的方法应该是这么多了,当然第一种方法,和第三种方法给定的键名不一定非是字符或字符串型的,也可以是整数型的。
//
数组在url中的传递:
为了能在url传递的时候让后台处理文件认为我传递的是数组,可以使用第四种方法。
当使用array()函数创建数组并传递的时候,默认认为你传递的是个字符串
例如:
PHP创建数组的方法和url可以传递数组解析
传递参数username=array(‘yaun’)结果:
PHP创建数组的方法和url可以传递数组解析
返回字符串

当使用第四种方法的时候,传递参数username[]=yaun
PHP创建数组的方法和url可以传递数组解析
返回数组

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI