Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah beberapa nilai $_POST hilang dalam PHP dan bagaimana saya boleh membetulkannya?

Mengapakah beberapa nilai $_POST hilang dalam PHP dan bagaimana saya boleh membetulkannya?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 17:57:29741semak imbas

Why are some $_POST values missing in PHP and how can I fix it?

Tiada Nilai $_POST dalam PHP

Apabila menyerahkan borang HTML melalui permintaan POST, semua nilai yang diserahkan akan mengisi superglobal $_POST. Walau bagaimanapun, dalam sesetengah kes, nilai tertentu mungkin tiada.

Apakah yang Menyebabkan Nilai Hilang?

PHP mengubah suai nilai yang mengandungi aksara tertentu secara automatik (cth., ruang, titik, kurungan segi empat terbuka) untuk memastikan keserasian dengan ciri register_globals yang telah ditamatkan. Pengubahsuaian ini boleh menyebabkan nilai diabaikan daripada $_POST.

Menyelesaikan Isu

Untuk menyelesaikan isu ini, pelbagai penyelesaian boleh digunakan. Satu kaedah yang popular ialah membaca data POST mentah menggunakan file_get_contents('php://input') dan menghuraikannya secara manual untuk mengekstrak nilai yang hilang.

Di bawah ialah contoh fungsi yang boleh digunakan untuk "membetulkan" nilai $_POST:

<code class="php">function getRealPOST() {
    $pairs = explode("&", file_get_contents("php://input"));
    $vars = array();
    foreach ($pairs as $pair) {
        $nv = explode("=", $pair);
        $name = urldecode($nv[0]);
        $value = urldecode($nv[1]);
        $vars[$name] = $value;
    }
    return $vars;
}</code>

Dengan menggunakan fungsi ini atau penyelesaian yang serupa, anda boleh memastikan bahawa semua nilai yang diserahkan dihuraikan dengan betul dan tersedia dalam tatasusunan $_POST.

Atas ialah kandungan terperinci Mengapakah beberapa nilai $_POST hilang dalam PHP dan bagaimana saya boleh membetulkannya?. 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