2017-01-05 20 views
1

我通過PHP用下面的代碼連接到MS AD服務器: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"; 
    } 
?> 

它與其他的字符,如+/- *「',但不使用C可能還有一些其他特殊字符。

在我的原代碼,我是從後獲得的數值,但問題是一樣的,當我剛剛把密碼在上面的代碼。

回答

1

它apears我忘了設置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"; 
    } 
?>