2017-01-05 4 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

私は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"; 
    } 
?> 
関連する問題