Mengapa Pembolehubah POST Melarikan Diri pada Pelayan Pengeluaran
Apabila menerima data daripada permintaan AJAX POST, jika pembolehubah $_POST anda terlepas pada pengeluaran anda pelayan tetapi bukan pada pelayan tempatan anda, sebab yang berkemungkinan didayakan petikan ajaib pada pelayan pengeluaran.
Petikan ajaib secara automatik melarikan diri petikan tunggal, petikan dua, garis miring ke belakang dan aksara nol apabila ia adalah sebahagian daripada data yang diterima daripada sumber luaran seperti permintaan POST. Ciri ini ialah langkah keselamatan untuk mengelakkan suntikan kod berniat jahat, tetapi ia juga boleh menyebabkan masalah apabila anda perlu mendapatkan semula data mentah.
Untuk menyelesaikan isu dan memastikan tingkah laku yang konsisten merentas kedua-dua pelayan, anda mempunyai beberapa pilihan :
Lumpuhkan Petikan Sihir
Pendekatan yang disyorkan ialah untuk melumpuhkan petikan sihir dalam php.ini. Ini secara global melumpuhkan pembolehubah POST yang melarikan diri. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa petikan ajaib akan dialih keluar dalam PHP 6, jadi adalah idea yang baik untuk mengelak daripada bergantung padanya.
Strip Slashes
Jika anda tidak boleh lumpuhkan petikan ajaib, anda boleh menanggalkan garis miring secara manual daripada pembolehubah $_POST menggunakan fungsi stripslashes():
if (get_magic_quotes_gpc()) { $my_post_var = stripslashes($_POST["my_post_var"]); }
Dengan melaksanakan salah satu daripada penyelesaian ini, anda boleh memastikan bahawa pembolehubah $_POST tidak terlepas pada pelayan pengeluaran anda dan kedua-dua pelayan tempatan dan pengeluaran anda berkelakuan secara konsisten.
Atas ialah kandungan terperinci Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Pengeluaran tetapi Bukan Secara Tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!