Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Pelayan Pengeluaran Saya Tetapi Bukan Pelayan Tempatan Saya?

Barbara Streisand
Lepaskan: 2024-10-27 10:01:03
asal
564 orang telah melayarinya

Why are My $_POST Variables Escaped on My Production Server But Not My Local Server?

Mengapa Melarikan Diri Berlaku kepada $_POST Pembolehubah dalam PHP

Soalan:

Mengapa $ Pembolehubah _POST dilarikan dalam skrip PHP apabila menerima data daripada permintaan AJAX POST? Ini berlaku pada pelayan pengeluaran yang menjalankan PHP 5.2.12 pada Linux, tetapi bukan pada pelayan tempatan yang menjalankan PHP 5.3.1 pada Windows.

Jawapan:

Petikan ajaib , khususnya magic_quotes_gpc, berkemungkinan didayakan pada pelayan Linux.

Penjelasan:

Petikan ajaib secara automatik melarikan diri daripada aksara tertentu (petikan tunggal dan berganda, garis miring ke belakang, dan bait nol) dalam data yang diterima daripada sumber luaran, termasuk permintaan POST. Apabila petikan ini dihidupkan, anda harus melumpuhkannya kerana ia akan mempengaruhi cara pembolehubah POST dirujuk.

Penyelesaian Kemungkinan:

  • Lumpuhkan petikan sihir dalam php.ini: Jika boleh, lumpuhkan petikan ajaib dalam fail konfigurasi php.ini.
  • Gunakan stripslashes(): Semak sama ada petikan ajaib didayakan dengan get_magic_quotes_gpc(). Jika ya, gunakan stripslashes() pada mana-mana data yang diambil daripada pembolehubah POST:
<code class="php">if (get_magic_quotes_gpc()) {
    $my_post_var = stripslashes($_POST["my_post_var"]);
}</code>
Salin selepas log masuk

Nota: Penyelesaian ini menanggalkan garis miring daripada semua data POST, jadi gunakannya berdasarkan selektif mengikut keperluan anda.

Atas ialah kandungan terperinci Mengapa Pembolehubah $_POST Saya Melarikan Diri pada Pelayan Pengeluaran Saya Tetapi Bukan Pelayan Tempatan Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan