2017-10-20 15 views
-1

私のldapディレクトリにユーザ名とパスワードの組み合わせが存在するかどうかを確認するPHPスクリプトを作成しようとしています。私はこれまでのことを投稿します。LDAPのユーザ名とパスワードのコンボをチェックするPHPスクリプトを作成する

<?php 

$username = $_POST["username"]; 
$password = $_POST["password"]; 

$ldapconn = ldap_connect("localhost") 
or die("Could not connect to LDAP server."); 

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); 

$ldaprdn = "cn=$username,dc=designstudio1,dc=com"; 
$ldappass = "$password"; 

if ($ldapconn) { 

$ldapbind = ldap_bind($ldapconn, $ldarprdn, $ldarppass); 

if ($ldapbind) { 

echo "Welcome back, $username!"; 

} else { 
    echo "Authentication failed. Please check your username/password and try again."; 
} 
} 

?> 

必要な場合は、ここに私のPHPのフォームがあります。

<!DOCTYPE html> 
<html lang="en"> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Login</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
</head> 
<body> 
<form id="contact-form" action="script.php" method="post"> 
<input type="hidden" name="redirect" /> 
<ul> 

     <label for="username">Username:</label> 
     <input type="text" name="username" id="username" value="" /> 


     <label for="password">Password:</label> 
     <input type="password" name="password" id="password" value="" /> 
     <input type="submit" value="submit" /> 
</ul> 
</form> 
</body> 
</html> 

すべてのユーザー名とパスワード(有効かどうか)を入力すると、常に私にウェルカムメッセージが表示されます。

私のコードは明らかにそれを表示するので、私はまだphpとldapの緑色です。どんな助けもありがとう。

私はアドバイスされた変更を加えると私のコードも編集します。

+0

スペルカウントをエラー報告を有効にする@Sammitch提案を検討してください。 'error_reporting'を呼び出すと、間違っているすべての変数名について文句を言います。 – Sammitch

+0

Oy。これらのほとんどは私の先生からのものでした。笑恥ずかしいです。私はそれをして、それが機能するかどうかを見なければならないでしょう。ヘッドアップをありがとう! – Zazabar

+0

これは間違っているLDAP変数ですか? – Zazabar

答えて

0

他のユーザー(コメントの@Sammitch)が指摘したように、php変数にはスペルミスがほとんどありません。

このコードを以下のように試してみてください。変数のスペルミスを見つけて固定しましたが、このコード以外は問題ありません。

はまた

<?php 

$username = $_POST["username"]; 
$password = $_POST["password"]; 

$ldapconn = ldap_connect("localhost") 
or die("Could not connect to LDAP server."); 

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); 

$ldaprdn = "cn=$username,dc=designstudio1,dc=com"; 
$ldappass = "$password"; 

if ($ldapconn) { 

    //Below line had several spelling mistakes 
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 

    if ($ldapbind) { 
      echo "Welcome back, $username!"; 
    } else { 
     echo "Authentication failed. Please check your username/password and try again."; 
    } 
} 
?> 
+1

あなたは優秀です。私は何が間違っていたのか把握しようとして、私の髪を引っ張っていた。私はそれがそれほど馬鹿だとは信じられない。それにもかかわらず、ありがとうございます**非常に**多く! – Zazabar

+0

@Zazabarこれが助けになったことを知ってうれしい。 –

関連する問題