PHP接收前端传值各种情况整理

<h1>PHP接收前端传值各种情况整理</h1> <h2>服务端代码:</h2>
1header('Access-Control-Allow-Origin:*'); 2var_dump($_POST); 3exit; 4
<h2>情况</h2> <h3>1) 传null</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: null 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(1) { 2 [&quot;test&quot;]=&gt; 3 string(0) &quot;&quot; 4} 5
<h3>2) 传''</h3> <p>代码:</p>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: '' 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(1) { 2 [&quot;test&quot;]=&gt; 3 string(0) &quot;&quot; 4} 5
<h3>3) 传'\[\]'</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: '[]' 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(1) { 2 [&quot;test&quot;]=&gt; 3 string(2) &quot;[]&quot; 4} 5
<h3>4) 传\[\]</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: [] 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(0) { 2} 3
<h3>5) 传2个\[\]</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: [], 3 &quot;test2&quot;: [] 4}, function(data, status) { 5 console.log(data); 6}); 7
<p>结果:</p>
1array(0) { 2} 3
<h3>6) 传{}</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: {} 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(0) { 2} 3
<h3>7) 传2个{}</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: {}, 3 &quot;test2&quot;: {} 4}, function(data, status) { 5 console.log(data); 6}); 7
<p>结果:</p>
1array(0) { 2} 3
<h3>8) 传1个{}加1个非空对象</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: {}, 3 &quot;test2&quot;: {&quot;a&quot;: 1} 4}, function(data, status) { 5 console.log(data); 6}); 7
<p>结果:</p>
1array(1) { 2 [&quot;test2&quot;]=&gt; 3 array(1) { 4 [&quot;a&quot;]=&gt; 5 string(1) &quot;1&quot; 6 } 7} 8
<h3>9) 传\[{}\]</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: [{}] 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(0) { 2} 3
<h3>10) 传\[\[{}\]\]</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: [[{}]] 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(0) { 2} 3
<h3>11) 传'nil'</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: 'nil' 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(1) { 2 [&quot;test&quot;]=&gt; 3 string(3) &quot;nil&quot; 4} 5
<h3>12) 传0</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: 0 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(1) { 2 [&quot;test&quot;]=&gt; 3 string(1) &quot;0&quot; 4} 5
<h3>13) 传'null'</h3>
1$.post('http://xxxxx.xx/index.php', { 2 &quot;test&quot;: 'null' 3}, function(data, status) { 4 console.log(data); 5}); 6
<p>结果:</p>
1array(1) { 2 [&quot;test&quot;]=&gt; 3 string(4) &quot;null&quot; 4} 5
<p>用抓包工具发现</p> <ol> <li>http请求里面并不会发送<code>&quot;无效的&quot;</code>字段——\[\]和{},所以不是PHP丢弃了,而是没收到;</li> <li>当传的值是js里的<code>null</code>,会转换成空字符串,http请求里面是<code>test=</code>,所以PHP接收到的test是个空字符串;</li> <li>http协议不能表示值是什么类型,所以PHP只能什么都当做string</li> </ol> <h2>总结:</h2> <ol> <li>PHP对于接收到的每一个值,会转换成字符串变量</li> <li>PHP对于接收到的,之所有会接收不到是因为被一系列规则过滤掉了</li> </ol> <p>以上结论是在jQ和PHP7之下验证的,其他环境不一定保证正确,之后可以试验使用CURL发送数据试试。</p> <h2>TODO:</h2> <ul> <li>\[ \] 用CURL发送POST测试</li> </ul>

原文链接:https://my.oschina.net/wiiilll/blog/3002507

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang