Nilai PHP $_POST hilang daripada php://input
Walaupun menerima data borang melalui permintaan POST, nilai tertentu gagal muncul dalam tatasusunan PHP $_POST. Penyahpepijatan mendedahkan kehadiran nilai ini dalam rentetan permintaan mentah yang diambil melalui php://input.
Punca:
PHP mengubah nama medan yang mengandungi aksara tertentu (ruang, titik, kurungan segi empat terbuka, dsb.) untuk mematuhi register_globals yang telah ditamatkan.
Penyelesaian:
<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>
Atas ialah kandungan terperinci Mengapakah Nilai $_POST Saya Hilang daripada Skrip PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!