php / ldap - сбой связывания, но errorno не выполняется - PullRequest
1 голос
/ 23 марта 2010

Я пытаюсь подключиться к ldap с помощью веб-приложения php. Если имя пользователя / пароль верны, все работает нормально, однако, если имя пользователя / пароль неверны, я получаю следующую ошибку:

Предупреждение PHP: ldap_bind () [function.ldap-bind]: невозможно привязать к серверу: неверные учетные данные

по какой-то причине я не могу посмотреть на errorno или состояние переменной bind впоследствии, чтобы напечатать удобное для пользователя сообщение об ошибке.

есть идеи?

Ответы [ 2 ]

3 голосов
/ 23 марта 2010

Скорее всего, проблема в том, что ldap_errno берет ресурс соединения ldap , и, если ldap_bind не удалось, вы не можете использовать его результат для получения ошибки.

Также: вы пытались подавить ошибку с помощью знака @?

например:.

$ldapconn = ldap_connect("localhost");
@$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

if( $ldapbind )
{
  // Everything went fine
} else {
  // Use the connection resource for ldap_errno
  $errno = ldap_errno( $ldapconn );

  // Check the error number, print an error message (...)
}
1 голос
/ 23 марта 2010

Прежде чем пытаться выполнить привязку, вы должны проверить, нормально ли работает ваше соединение ldap:

$ldap_conn = ldap_connect($ldap_host,$ldap_port);
if ($ldap_conn) {
    ldap_bind($ldap_conn, $ldap_user_dn, $ldap_pass);
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...