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

WBOY
풀어 주다: 2016-06-23 13:42:56
원래의
1104명이 탐색했습니다.

我在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     

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


回复讨论(解决方案)

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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!