2017-01-05 3 views
1

Я соединяясь с помощью следующего кода в MS AD-сервере с помощью PHP:Аутентификация LDAP PHP не работает с некоторыми персонажами

<?php 
    $login='domain\\username'; 
    $password='somepaswordwithç'; 
    $ldap=ldap_connect("someserver.com"); 
    if ($bind = @ldap_bind($ldap, $login, $password)) { 
     echo "ok"; 
    } 
    else{ 
     echo "error while connecting"; 
    } 
?> 

Он работает с другими персонажами, как +/- * " ', но не с ç и, возможно, некоторыми другими специальными символами.

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

ответ

1

Похоже, я забыл установить опцию ldap:

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 

Так правильный код:

<?php 
    $login='domain\\username'; 
    $password='somepaswordwithç'; 
    $ldap=ldap_connect("someserver.com"); 
    ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
    if ($bind = @ldap_bind($ldap, $login, $password)) { 
     echo "ok"; 
    } 
    else{ 
     echo "error while connecting"; 
    } 
?>