Rumah > Artikel > pembangunan bahagian belakang > Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi undefined ldap_bind()
Apabila membangunkan aplikasi web menggunakan PHP, kita selalunya perlu menggunakan pengesahan LDAP untuk melindungi akses aplikasi. Walau bagaimanapun, dalam beberapa kes, apabila kami cuba menggunakan fungsi LDAP PHP untuk melaksanakan pengesahan, kami mungkin menghadapi mesej ralat berikut: "Ralat maut PHP: Panggilan ke fungsi yang tidak ditentukan ldap_bind()". Mesej ralat ini biasanya berlaku apabila aplikasi memanggil fungsi ldap_bind(), yang digunakan untuk mengikat bukti kelayakan pengguna kepada sambungan LDAP. Di bawah ini kami memperkenalkan beberapa kaedah untuk menyelesaikan masalah ini.
Kaedah 1: Pasang sambungan PHP LDAP
Ralat ini biasanya disebabkan oleh sambungan LDAP PHP tidak dipasang atau didayakan dengan betul. Oleh itu, kita perlu menyemak sama ada PHP telah memasang sambungan LDAP yang diperlukan. Kita boleh menggunakan fungsi phpinfo() untuk menyemak sama ada sambungan PHP LDAP telah dipasang. Jika kami tidak melihat maklumat tentang sambungan LDAP, ini bermakna PHP belum memasang sambungan itu. Dalam kes ini, kami perlu memasang sambungan LDAP secara manual.
Pada sistem pengendalian Linux, kami boleh menggunakan arahan berikut untuk memasang sambungan LDAP:
sudo apt-get install php-ldap
Pada sistem pengendalian Windows, kami hanya boleh mendayakan sambungan php_ldap.dll dalam fail php.ini .
Kaedah di atas secara amnya akan menyelesaikan kebanyakan masalah. Walau bagaimanapun, jika kita mendapati bahawa sambungan LDAP dipaparkan dalam fungsi phpinfo(), tetapi ralat masih berlaku, kita perlu mencuba kaedah berikut.
Kaedah 2: Semak konfigurasi PHP
Jika sambungan LDAP PHP telah dipasang dengan betul, tetapi ralat "PHP Fatal: Call to undefined function ldap_bind()" masih berlaku, ia mungkin disebabkan oleh konfigurasi Disebabkan oleh PHP. Oleh itu, kita perlu menyemak parameter konfigurasi PHP berikut:
extension_dir = "ext"
Jika parameter ini tidak dikonfigurasikan dengan betul, PHP mungkin tidak dapat memuatkan sambungan ldap. Sila pastikan anda mengubah suai fail ini dan mulakan semula pelayan web. Jika parameter ini tidak ditetapkan atau ditetapkan secara salah, anda perlu menetapkannya secara manual kepada nilai yang betul.
extension=php_ldap.dll
Parameter ini digunakan untuk memberitahu PHP untuk memuatkan sambungan LDAP yang diperlukan. Jika parameter ini tidak ditetapkan, PHP tidak boleh memuatkan sambungan ldap. Sila tetapkan parameter ini mengikut sistem pengendalian dan versi PHP anda.
Kaedah ketiga: Semak sambungan ke pelayan LDAP
Jika semua kaedah di atas tidak menyelesaikan ralat ini, maka masalahnya mungkin pelayan LDAP tidak dapat disambungkan dengan betul. Kami boleh menggunakan protokol LDAPS (LDAP over Secure Socket Layer) untuk menyulitkan sambungan LDAP bagi memastikan sambungan LDAP boleh dipercayai dan selamat. Sebelum menyambung ke pelayan LDAP, anda perlu memastikan bahawa anda mempunyai kelayakan dan kebenaran yang sesuai untuk mengakses pelayan. Anda juga perlu memastikan pelayan LDAP anda berjalan dan memberikan butiran nama hos, port, nama pengguna dan kata laluan yang betul untuk mewujudkan sambungan.
Sebelum menyambung ke pelayan LDAP, kami boleh menggunakan kod PHP berikut untuk menguji sama ada sambungan LDAP adalah normal:
$ldapconn = ldap_connect("ldap://localhost") or die("Could not connect to LDAP server.");
Jika sambungan berjaya, kami boleh menggunakan kod PHP berikut untuk ikat nama pengguna dan kata laluan
ldap_bind($ldapconn, $ldaprdn, $ldappass) or die("Could not bind to LDAP server.");
Jika langkah ini gagal, maka anda perlu menghubungi pentadbir pelayan LDAP untuk mendapatkan maklumat lanjut.
Ringkasan
Dalam kes "PHP Fatal error: Call to undefined function ldap_bind()" yang mungkin berlaku, adalah disyorkan agar anda mengambil semua langkah di atas untuk menyelesaikan masalah ini. Anda harus terlebih dahulu menyemak sama ada sambungan LDAP untuk PHP dipasang dan didayakan dengan betul. Jika itu masih tidak menyelesaikan masalah, anda perlu menyemak butiran seperti konfigurasi PHP dan sambungan pelayan LDAP. Dengan kaedah di atas, anda sepatutnya berjaya menyambung ke pelayan LDAP dan mengesahkan menggunakan PHP.
Atas ialah kandungan terperinci Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi undefined ldap_bind(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!