Apa yang perlu dilakukan jika WeChat tidak dapat menerima data pos dalam php

藏色散人
Lepaskan: 2023-03-14 15:02:02
asal
1841 orang telah melayarinya

Penyelesaian kepada masalah yang PHP WeChat tidak boleh menerima data pos: 1. Dayakan register_globals dalam php.ini 2. Dapatkan data pos melalui kaedah file_get_contents("php://input".

Apa yang perlu dilakukan jika WeChat tidak dapat menerima data pos dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.

php Apakah yang perlu saya lakukan jika WeChat tidak dapat menerima data pos?

Antara muka PHP rasmi WeChat tidak boleh mendapatkan data postStr

Dokumen antara muka PHP yang disediakan oleh WeChat official , terdapat sekeping kod sedemikian untuk mengendalikan perniagaan utama

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();
    }
Salin selepas log masuk

Dalam kaedah ini, data Pos asal diperoleh melalui pembolehubah global GLOBALS, tetapi kaedah ini juga mempunyai masalah.

Untuk mendapatkan data melalui Globals, register_globals dalam php.ini mesti ditetapkan kepada HIDUP data Daftar dihidupkan secara lalai dalam versi php yang lebih rendah, tetapi dalam versi yang lebih tinggi, ia dimatikan secara lalai kerana, Selepas menetapkannya kepada ON, pembolehubah yang dihantar oleh borang secara automatik akan menjadi pembolehubah Maksudnya, pembolehubah yang dimasukkan dalam bar alamat akan menjadi pembolehubah global. Ini sangat tidak selamat.

Selain $GLOBALS["HTTP_RAW_POST_DATA"] untuk mendapatkan data daripada siaran, anda juga boleh mendapatkan data daripada siaran melalui kaedah file_get_contents("php://input").

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apa yang perlu dilakukan jika WeChat tidak dapat menerima data pos dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan