Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika siaran php tidak dapat menerima data?

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

藏色散人
藏色散人asal
2021-10-15 10:05:185689semak imbas

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']".

Apakah yang perlu saya lakukan jika siaran php tidak dapat menerima 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 menerimanya

Dengan 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[&#39;HTTP_RAW_POST_DATA&#39;]$postdata = json_decode($mypost);$username = $postdata->username;
Pembelajaran yang disyorkan: "

Tutorial Video PHP
"

$mypost = isset($GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;])?$GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;]: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!

Kenyataan:
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