2017-02-24 4 views
0

システムログインパスワードをphpログインページに使いたいです。私のプロジェクトではLDAPコンセプトを使用しました。私は以下のコーディングを言いました。しかし、私はこのコードを実行すると、結果は "無効なユーザー"を示しています。なぜこれが間違っているのか分かりません。その結果以下phpを使ってldapで認証されたユーザーを取得するには?

$ldaphost = 'abc.co.in'; 
$ldapport = '389'; 

$username = '4444'; 
$password = '4444pass'; 

$ldap = ldap_connect($ldaphost, $ldapport) 
    or die("Could not connect to $ldaphost"); 

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 

$user = "uid=$username,dc=abc,dc=co,dc=in"; 

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

if ($bind) { 
    echo "<br />Valid user"; 
} else { 
    $msg = "<br />Invalid user"; 
    echo $msg; 
} 

enter image description here

何私のコードに障害があるか、私が追加何もする必要がありますか?

このリクエストを見つけて解決してください。それは私にもっと役立つでしょう。

進んでいただきありがとうございます...

答えて

0

これは私のLDAPのことがどのように機能するかです。あなたのLDAPホストを "ldap://abd.asd.co:389"または "ldaps://asd.basd.co:636"に変更してください。

function verify_user() { 


    $user = $_REQUEST['user']; 
    $passwd = $_REQUEST['pass']; 

    // Bind to LDAP to check is user is valid 
    $server = "ldaps://ldap.server.com:636"; 
    $dn = "uid=$user, ou=People, ou=something, dc=other, dc=whatever"; 
    // Create a fake password if needed to keep people from anonymously 
    // binding to LDAP 
    if($passwd == '') { $passwd = "p"; } 
    $ldap = ldap_connect($server) or die("Can't connect to LDAP server!"); 
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_start_tls($ldap); 
    if($ldap) { 
     $bnd = @ldap_bind($ldap, $dn, stripslashes($passwd)); 
     if(!$bnd) { 
     sleep(5); 
     echo "<br>Error: Bad Username or Password!<br>"; 
     exit; 
     } 
    } 

    header("Location: {$_REQUEST['url']}"); /* Redirect browser */ 
    exit; 
} 
関連する問題