Задать вопрос
@alexeyaktanov

Что не так в ldap_search?

Добрый день.
$ldaphost = "10.10.10.10";
$ldapport = '389';
$login = "user1";
$password = "P@ssw0rd";
$base = "DC=myDomain, DC=local";

$ldap = ldap_connect($ldaphost, $ldapport) or die('Connection to LDAP failed!');
$filter="(sAMAccountName=$username)";
$array = array("telephoneNumber", "otherTelephone", "givenname", "mail");
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
$result = ldap_search($ldap,$base,$filter,$array) or die('Unable to search LDAP server');

Помогите найти ошибку. ругается на ldap_search:
PHP Warning: ldap_search(): Search: Operations error
  • Вопрос задан
  • 463 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Не сделана привязка через ldap_bind().
А ошибки надо смотреть по коду ldap_errno().
Ответ написан
@MrColdCoffee
web
У меня работало вот так:
define( 'AD_SERVER_IP', '192.168.7.99' );
		define( 'AD_DOMAIN', 'domain' );
                
		$adServer = "ldap://".AD_SERVER_IP;
		$ldap = ldap_connect($adServer);
		$username = 'username';
		$password = 'password';

		$ldaprdn = AD_DOMAIN . "\\" . $username;

		ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
		ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
		ldap_set_option($ldap, LDAP_OPT_SIZELIMIT, 3);

		$bind = @ldap_bind($ldap, $ldaprdn, $password);

		if($bind){
			$filter="(sAMAccountName=$username)";
			$params = array('cn','telephonenumber');
			$result = ldap_search($ldap,"dc=".AD_DOMAIN.",dc=local",$filter,$params );        
			$info = ldap_get_entries($ldap, $result);
			@ldap_close($ldap);
		}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы