php中出现Notice: Undefined index: HTTP_RAW_POST_DATA in D:Program Files

php中文网
发布: 2016-06-23 13:42:56
原创
1664人浏览过

我在php中写下了:

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
运行后
php中出现Notice: Undefined index: HTTP_RAW_POST_DATA in D:\Program Files\phpEnv\phpdemo\shm_php01\shm01.php on line 47

然后我把php.ini文件中的always_populate_raw_post_data = On     注释去掉了

; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
; to disable this feature. If post reading is disabled through
; enable_post_data_reading, $HTTP_RAW_POST_DATA is *NOT* populated.
; http://php.net/always-populate-raw-post-data
always_populate_raw_post_data = On     

重启依然不能用,求高人指点迷津

百度文心百中
百度文心百中

百度大模型语义搜索体验中心

百度文心百中 22
查看详情 百度文心百中

回复讨论(解决方案)

always_populate_raw_post_data = On

当以 post 方式提交时,可用 
echo $HTTP_RAW_POST_DATA;
打印出提交过来的无格式串

当然不是 post 方式提交时,就是未定义

其实这本可以用 file_get_contents('php://input') 代替的

always_populate_raw_post_data = On

当以 post 方式提交时,可用 
echo $HTTP_RAW_POST_DATA;
打印出提交过来的无格式串

当然不是 post 方式提交时,就是未定义



我的源代码方法是这样的:
 public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        if (!empty($postStr)){
            $postObj = simplexml_load_string($HTTP_RAW_POST_DATA, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "
                        
                        
                        %s
                        
                        
                        0
                        
";
            if($keyword == "?" || $keyword == "?")
            {
                $msgType = "text";
                $contentStr = date("Y-m-d H:i:s",time());
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }
        }else{
            echo "";
            exit;
        }
    }

帮我看下

 public function responseMsg() {
         if(! isset($GLOBALS["HTTP_RAW_POST_DATA"])) return '';
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

 public function responseMsg() {
         if(! isset($GLOBALS["HTTP_RAW_POST_DATA"])) return '';
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];



我用这个方法试了下,这样直接return了。。然后下面的代码就没有实现了。。不晓得咋弄了

直接运行,当然是直接返回
要是 post 提交的才行

直接运行,当然是直接返回
要是 post 提交的才行



可能我还不是很会,那我在学学,谢谢了

测试时,你得写个表单

这个是微信接口里面的代码吧   我也出现这个问题  楼主解决了吗

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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