Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Satu Pelayan Tetapi Tidak Lain?

Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Satu Pelayan Tetapi Tidak Lain?

DDD
DDDasal
2024-10-27 02:30:30795semak imbas

Why Are My $_POST Variables Escaping on One Server But Not Another?

Mengapa Pembolehubah $_POST Melarikan Diri pada Satu Pelayan Tetapi Bukan Pelayan Lain?

Apabila berurusan dengan permintaan AJAX POST, adalah membingungkan untuk menghadapi pembolehubah $_POST yang terlepas pada satu pelayan tetapi bukan yang lain. Mari kita siasat punca dan sediakan penyelesaian.

Isu ini timbul disebabkan petikan ajaib, yang didayakan pada pelayan Linux tetapi bukan pada pelayan Windows. Petikan ajaib secara automatik melepaskan aksara tertentu dalam input pengguna, termasuk petikan tunggal dan berganda, garis miring ke belakang dan nol.

Untuk menyelesaikan percanggahan ini, melumpuhkan petikan ajaib disyorkan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa petikan ajaib akan dialih keluar daripada PHP 6 dan seterusnya. Sementara itu, anda boleh menyahaktifkannya semasa masa jalan, walaupun pendekatan ini hanya melumpuhkan pelarian aksara untuk sybase (UnixODBC).

Untuk kes yang menyahaktifkan petikan ajaib tidak boleh dilaksanakan, penyelesaiannya adalah untuk menyemak sama ada petikan ajaib adalah didayakan dan gunakan stripslashes() pada kandungan POST:

<code class="php">if (get_magic_quotes_gpc()) {
 $my_post_var = stripslashes($_POST["my_post_var"]);
}</code>

Dengan mengikut langkah ini, anda boleh memastikan pembolehubah $_POST dikendalikan secara konsisten merentas pelayan yang berbeza, tanpa mengira tetapan petikan ajaib.

Atas ialah kandungan terperinci Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Satu Pelayan Tetapi Tidak Lain?. 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