竞赛题目:http://14d439b1e955423ebdebb378e0fc9e722aecf253a7984c5c.changame.ichunqiu.com/
相关writeup:
https://www.bugbank.cn/q/article/5a3dda3faf2b5a927faade0d.html
自己的笔记:
PHP中$_POST和$_GET的用法
https://www.cnblogs.com/zhengweizhao/p/6532952.html
进一步解释:
php中有$_request与$_post、$_get用于接受表单数据。
一、$_request与$_post、$_get的区别和特点
$_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得
二、$_post、$_get的区别和特点
1. get和post是request报文中的数据请求方式,它们都是客户端向服务器传送数据。$_post
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML 的body内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。
举例:mypage?id=1这种就是GET方式传值,可以用$_request和$_get接受传值。
特殊注意点:
PHP 5.3.0 引入 request_order。该指令会影响 $_REQUEST 的内容,这条指令确定了哪些超全局数据该被注册到超全局数组REQUEST中,这些超全局数据包括G(GET),P(POST),C(COOKIE),E(ENV),S(SERVER)。这条指令同样指定了这些数据的注册顺序,换句话说GP和PG是不一样的。注册的顺序是从左至右,即右侧的值会覆盖左侧的。比如,当设置为GPC时(即request_order = "GPC" ),COOKIE > POST > GET,依次覆盖。如果这个项被设置为空,php将会使用指令variables_order的值来指定。