PHP _POST['']接受不到数据
怪我咯
怪我咯 2017-04-10 17:36:49
[PHP讨论组]

sign=27c45caa483a1582eee4aaea17&result=2000&usercode=A00&value=5&orderno=dn202900501&datetime=20161102142026&billid=R163734&accountvalue=4.3&info=%D6%A7%B8%B6%B3%C9%B9%A6&version=1.0&mode=q

用file_get_contents('php://input')方法可以得到以上数据,用_POST['']可以得到每一项的值,唯独获取不到info的值,求解!!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
PHP中文网
$a = 'sign=27c45caa483a1582eee4aaea17&result=2000&usercode=A00&value=5&orderno=dn202900501&datetime=20161102142026&billid=R163734&accountvalue=4.3&info=%D6%A7%B8%B6%B3%C9%B9%A6&version=1.0&mode=q';
parse_str(iconv('GB2312', 'UTF-8', urldecode($a)),$out);
print_r($out);
Array
(
    [sign] => 27c45caa483a1582eee4aaea17
    [result] => 2000
    [usercode] => A00
    [value] => 5
    [orderno] => dn202900501
    [datetime] => 20161102142026
    [billid] => R163734
    [accountvalue] => 4.3
    [info] => 支付成功
    [version] => 1.0
    [mode] => q
)
怪我咯

直接打印下$_POST看下.

print_r($_POST);

我测试了下,你的info是用的gb2312编码,可能和编码不对有关,所以没获取到。

#gb2312
支付成功

#utf-8
֧���ɹ�
PHPz

info是经过urlencode加密过的,从post中取info的值,然后用urldecode解码,最后打印print_r

阿神

你把info的值转换成英文或者数字看看去不去得到,取不到,是空值,还是index不存在?

PHPz

只有 Content-Type 为 application/x-www-form-urlencodedmultipart/form-data 的 HTTP 请求才会放入到 $_POST 中,其它 Content-Type 类型的请求可以通过 php://input 或者 $HTTP_RAW_POST_DATA 的方式获取。

// 需要注意的是 php://input 不能用于 enctype="multipart/form-data"
$value = json_decode(file_get_contents('php://input'), true);
$info = $value['info'];
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号