pozitronik: (Default)
pozitronik ([personal profile] pozitronik) wrote2009-09-08 10:51 am
Entry tags:

Ошибка ldap_bind

Задача: нужно проверять авторизацию по LDAP. Очевидное решение:
$ldap = ldap_connect($ldap_server); 
ldap_bind($ldap, $username, $password) or echo "ERROR";


Но возникла засада - ldap_bind всегда возвращал TRUE (т.е. сигнал успешной авторизации), даже если логин и пароль были неверные. Косяк ли это в самой функции, или же в нашем ldap-сервере - хз, нагуглить что-то про этот баг не удалось.
Решение:
$ldap = ldap_connect($ldap_server); 
ldap_bind($ldap, $username, $password);
@ldap_search($ldap,"ou=поволжье,dc=megafonvolga,dc=ru","SN=А*"); //давим вывод ворнингов
if (ldap_errno($ldap)<>0)  return (false); else return (true);

то есть если после неудачной авторизации попытаться что-либо с лдапом сделать (я делал поиск), то он нас обоснованно пошлёт нафиг. А там достаточно посмотреть, возникла ли ошибка.

[identity profile] ximik827.livejournal.com 2009-09-08 12:33 pm (UTC)(link)
классно, спасибо) Возьму на заметочку такой финт ушами :)