PHP WeChat이 게시물 데이터를 수신하지 못하는 문제에 대한 해결 방법: 1. php.ini에서 Register_globals를 활성화합니다. 2. file_get_contents("php://input") 메서드를 통해 게시물 데이터를 얻습니다.
이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, Dell G3 컴퓨터.
php WeChat에서 게시물 데이터를 수신할 수 없으면 어떻게 해야 하나요?
WeChat 공식 PHP 인터페이스에서 postStr 데이터를 얻을 수 없습니다
WeChat 공식에서 제공하는 PHP 인터페이스 문서에 주요 업무를 처리하는 코드가 있습니다
public function getIndex(){ if (ob_get_contents()) ob_end_clean(); $postStr = isset($GLOBALS["HTTP_RAW_POST_DATA"])?$GLOBALS["HTTP_RAW_POST_DATA"]:'';//获取post过来的数据 if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->postObj = $postObj; $this->fromUserName = $postObj->FromUserName;//发送方 $this->toUserName = $postObj->ToUserName;//接收方(即本公众账号) $this->msgType = trim($postObj->MsgType);//消息类型 $this->content = trim($postObj->Content); $this->event = trim($postObj->Event); $this->eventKey = trim($postObj->EventKey); $this->dealMsg(); }else{ $this->wx->makeInfo(Input::all()); $this->wx->valid();//非消息推送时,默认为校验 } flush(); }
이 방법은 원본 Post 데이터를 얻기 위해 전역 변수 GLOBALS를 사용하지만 이 방법에도 문제가 있습니다.
Global을 통해 데이터를 얻으려면 php.ini의 Register_globals를 ON으로 설정해야 합니다. php의 하위 버전에서는 데이터 등록이 기본적으로 켜져 있지만 상위 버전에서는 기본적으로 꺼져 있기 때문입니다. ON으로 설정하면 양식을 통해 제출된 변수가 자동으로 변수가 됩니다. 즉, 주소 표시줄에 입력된 변수가 전역 변수가 되어 매우 안전하지 않습니다.
포스트에서 데이터를 얻기 위한 $GLOBALS["HTTP_RAW_POST_DATA"] 외에도 file_get_contents("php://input") 메소드를 통해 포스트에서 데이터를 얻을 수도 있습니다.
추천 학습: " PHP 비디오 튜토리얼"
위 내용은 WeChat이 PHP로 게시물 데이터를 수신할 수 없는 경우 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!