Dalam PHP, tanda dolar ($) dalam rentetan biasanya menunjukkan pembolehubah. Walau bagaimanapun, ini boleh menimbulkan masalah apabila berurusan dengan kata laluan yang mengandungi aksara.
Masalah:
Apabila skrip PHP cuba menyambung ke pangkalan data, nilai kata laluan yang salah sedang dihantar. Kata laluan mengandungi tanda $, dan ini ditafsirkan sebagai pembolehubah dan bukannya sebahagian daripada kata laluan.
Penyelesaian 1: Melarikan Diri dari Tanda Dolar
Untuk menyelesaikan isu , tanda dolar dilarikan menggunakan garis serong ke belakang ():
$_DB["password"] = "mypas$word";
Ini secara berkesan menganggap aksara $ sebagai nilai literal, membenarkan kata laluan yang betul dihantar.
Satu lagi Penyelesaian: Rentetan Petikan Tunggal
Penyelesaian alternatif ialah menggunakan rentetan petikan tunggal untuk kata laluan:
$_DB['password'] = 'mypas$word';
Rentetan petikan tunggal tidak diproses oleh PHP dan diambil tepat seperti yang muncul. Pendekatan ini menghalang tanda $ daripada ditafsirkan sebagai pembolehubah.
Mengendalikan Pendapatan Kata Laluan daripada Pangkalan Data
Jika kata laluan disimpan dalam pangkalan data, isu yang sama berpotensi berlaku apabila PHP mengambilnya. Untuk mengelakkan ini, pangkalan data hendaklah dikonfigurasikan untuk menyimpan kata laluan dalam rentetan yang diformat dengan betul, dengan mana-mana aksara khas yang terlepas atau menggunakan rentetan petikan tunggal.
Amalan Terbaik
Untuk rentetan yang tidak memerlukan penggantian pembolehubah atau aksara khas, amalan terbaik adalah menggunakan rentetan petikan tunggal. Ini lebih selamat dan kalis ralat.
Atas ialah kandungan terperinci Mengapa Kata Laluan Saya Dengan Tanda Dolar Pecah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!