Misteri Auto-Escape Data POST dalam WordPress
Walaupun melumpuhkan petikan sihir melalui php.ini, PHP dan WordPress terus auto-escape Data POST yang mengandungi petikan tunggal. Isu yang membingungkan ini telah menyebabkan pembangun menggaru kepala.
Origin WordPress Auto-Escaping
Punca auto-escape terletak pada proses bootstrapping WordPress. Apabila WordPress dimulakan, ia mengaktifkan kod yang secara automatik melepaskan aksara tertentu dalam input pengguna.
Penyelesaian untuk Auto-Escaping
Untuk menyelesaikan isu ini, adalah disyorkan untuk mengatasi pembolehubah global buat sementara waktu menggunakan kod berikut:
$_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);
Sebagai alternatif, anda boleh mempertimbangkan untuk menggunakan pendekatan yang lebih disasarkan dengan "membuang secara setempat" dan bukannya menimpa superglobals. Contohnya:
$post = array_map('stripslashes_deep', $_POST);
Pertimbangan Tambahan
Menulis ganti superglobals berpotensi memberi kesan kepada bahagian lain aplikasi anda. Oleh itu, nilai dengan teliti sama ada ia sesuai untuk situasi khusus anda.
Pemahaman lanjut daripada @Alexandar O'Mara dan @quickshiftin memberikan perspektif yang berharga tentang topik ini.
Atas ialah kandungan terperinci Mengapa WordPress Auto-Escape POST Data Walaupun Selepas Melumpuhkan Petikan Ajaib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!