Rumah > Artikel > pembangunan bahagian belakang > Apakah yang perlu saya lakukan jika siaran php tidak dapat menerima data?
Penyelesaian kepada masalah php post tidak boleh menerima data: 1. Tukar max_input_vars dalam php.ini kepada 5000 2. Dapatkan data melalui "$GLOBALS['HTTP_RAW_POST_DATA']".
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
1: PHP tidak boleh diperoleh menggunakan POST Beberapa masalah data
Sebuah projek yang dibangunkan menggunakan PHP Semasa fasa ujian, pelanggan melaporkan bahawa data tidak berjaya disimpan
Dan ujian saya sebelum ini lulus, tetapi mengikut. untuk maklumat pelanggan, data tidak berjaya disimpan
Masalahnya seperti ini
Pelanggan menyimpan melalui penyemak imbas, tetapi beberapa data telah berjaya disimpan, tetapi beberapa data. belum berjaya disimpan
Dan saya Melalui ujian, didapati beberapa data dalam $_POST tidak tersedia, tetapi ada yang tersedia
Dan file_get_contents("php://input") ; juga boleh mendapatkan data dengan cara ini, tetapi kerana data perlu diproses, menambah Kod di atas perlu membuat banyak perubahan
Jadi selepas memikirkannya, kita masih perlu menyelesaikan masalah $ _POST
Saya juga sangat keliru pada mulanya Masalah yang saya hadapi sebelum ini ialah semua $_POST tidak dapat diperolehi Tetapi ini adalah kali pertama saya hanya boleh mendapatkan sebahagian daripada maklumat itu
Memandangkan $_POST boleh menyerahkan data, sama ada sebahagian daripada data tidak dihantar ke latar belakang sebelum penyerahan, atau latar belakang tidak menerimanyaDengan menyemak permintaan penyemak imbas, tiada masalah ditemui dihantar seperti biasa Kemudian ia bermakna latar belakang tidak memperolehnya Dalam ujian saya, saya mendapati bahawa saya memadam secara manual data yang diserahkan, dan kemudian diserahkan belakang $_POST untuk mendapatkan semua data, dan kemudian mencari di Internet Saya baru mendapati bahawa data yang diserahkan oleh $_POST mempunyai had saiz<.>Kemudian tukar max_input_vars dalam php.ini kepada 5000, yang merupakan penyelesaian yang sempurna
2: Penyelesaian kepada $_POST tidak menerima data bahagian hadapan dalam php
Secara lalai, jenis permintaan bahagian hadapan ialah Content-Type:application/x- www-form-urlencoded, anda boleh mendapatkan data menggunakan $_POST
Jika jenis permintaan bahagian hadapan ialah Content-Type:application/json, anda tidak boleh mendapatkan data hanya menggunakan $_POST. (Contohnya, axios vue.js, mod lalai ialah application/json)
Pada masa ini, anda boleh mendapatkannya melalui $GLOBALS['HTTP_RAW_POST_DATA'] dan kemudian gunakan json_decode untuk menukarnya menjadi contoh.
$mypost = $GLOBALS['HTTP_RAW_POST_DATA']$postdata = json_decode($mypost);$username = $postdata->username;Pembelajaran yang disyorkan: "
Tutorial Video PHP
"
$mypost = isset($GLOBALS['HTTP_RAW_POST_DATA'])?$GLOBALS['HTTP_RAW_POST_DATA']:file_get_contents("php://input");$postdata = json_decode($mypost);$username = $postdata->username;
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika siaran php tidak dapat menerima data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!