Menyingkap Data Siaran Auto-Escape Misteri dalam PHP dengan Petikan Sihir Dilumpuhkan
Apabila bekerja dengan data POST dalam PHP, terutamanya dalam persekitaran WordPress, anda mungkin menghadapi gelagat pelarian automatik yang tidak dijangka walaupun petikan ajaib dimatikan. Isu membingungkan ini timbul apabila data POST mengalami pelarian automatik, walaupun petikan ajaib dilaporkan dilumpuhkan (get_magic_quotes_gpc() mengembalikan 0).
Pengaruh WordPress
WordPress menyertakan fungsi yang memintas data permintaan, termasuk data POST dan melaksanakan operasi tertentu, salah satunya melarikan petikan tunggal ('). Tingkah laku ini berlanjutan walaupun apabila petikan ajaib dilumpuhkan dalam php.ini.
Sumber Pepijat
Pemeriksaan lebih dekat pangkalan kod WordPress mendedahkan pepijat yang dilaporkan di bawah sistem WordPress Core Trac (tiket 18322). Isu ini berkaitan dengan pengendalian data permintaan yang salah, yang mencetuskan pelarian yang tidak diingini.
Penyelesaian
Mujurlah, penyelesaian tersedia untuk menyelesaikan auto-escape ini dilema. WordPress Codex mengesyorkan menggunakan fungsi stripslashes_deep() untuk "menyah-escape" data POST sebelum melakukan sebarang operasi padanya. Dengan menggunakan fungsi ini, anda boleh mengatasi auto-escape WordPress dengan berkesan dan mendapatkan semula data dalam format asalnya.
Untuk melaksanakan penyelesaian ini, tambahkan kod berikut pada skrip PHP anda:
<code class="php">$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_SERVER = array_map('stripslashes_deep', $_SERVER);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);</code>
Salin selepas log masuk
Kod ini memotong garis miring daripada semua superglobal, memastikan bahawa data POST tidak secara automatik terlepas apabila diakses dalam PHP.
Atas ialah kandungan terperinci Mengapakah POST Data Auto-Escaping dalam PHP Walaupun Petikan Ajaib Dilumpuhkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!