Mengendalikan Isu "Slash Before Every Quote" dengan Petikan Ajaib dalam PHP
Anda menghadapi isu di mana borang PHP anda menambah aksara "" sebelum setiap petikan berganda apabila diserahkan. Ini berkemungkinan disebabkan oleh ciri "petikan ajaib" didayakan pada pelayan anda.
Petikan ajaib secara automatik melarikan diri daripada aksara tertentu, termasuk petikan berganda, dalam penyerahan borang dan data input lain. Walaupun ciri ini bertujuan untuk menghalang serangan suntikan SQL, ia boleh menyebabkan masalah dengan integriti data dan secara amnya dianggap ketinggalan zaman.
Untuk menyelesaikan masalah ini, anda boleh menggunakan fungsi stripslash() untuk mengalih keluar garis miring yang tidak diingini sebelum memproses teks tersebut. Tambahkan syarat berikut menggunakan stripslashes() pada kod anda:
<code class="php">if (get_magic_quotes_gpc()) { $your_text = stripslashes($your_text); }</code>
Selepas memproses teks dengan stripslashes(), anda boleh menggunakan pembolehubah $your_text yang terhasil secara normal dan ia tidak akan mengandungi sebarang garis miring yang tidak dijangka.
Mengenai Melumpuhkan Petikan Sihir:
Seperti yang anda nyatakan, anda mempunyai akses root ke pelayan anda. Melumpuhkan petikan sihir biasanya disyorkan untuk menulis kod yang tersusun dengan baik dan selamat. Sebab untuk melumpuhkannya termasuk:
Untuk melumpuhkan petikan ajaib, edit fail php.ini pelayan anda dan tetapkan arahan magic_quotes_gpc kepada Mati. Setelah perubahan dibuat, mulakan semula pelayan web anda untuk perubahan berkuat kuasa.
Ingat untuk menguji aplikasi anda dengan teliti selepas melumpuhkan petikan ajaib untuk memastikan ia masih berfungsi seperti yang diharapkan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Slash Tidak Dijangka dalam Penyerahan Borang dengan Petikan Ajaib PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!