2017-10-20 47 views
-1

J'essaie de créer un script php qui vérifie si une combinaison de nom d'utilisateur et de mot de passe existe dans mon répertoire ldap. Je posterai ce que j'ai jusqu'ici.Création d'un script PHP qui vérifie le nom d'utilisateur et le mot de passe dans LDAP

<?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."; 
} 
} 

?> 

Si vous en avez besoin, voici mon php avec le formulaire.

<!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> 

Chaque nom d'utilisateur et mot de passe (valide ou non) que je saisis, il me montre toujours le message de bienvenue.

Je suis encore assez vert en php et ldap car mon code l'affiche clairement. Toute aide serait appréciée.

Je vais aussi éditer mon code lorsque je ferai des changements avisés et que tout ce que je repère ne correspondra pas.

+0

compte d'orthographe. Réglez 'error_reporting' et il devrait se plaindre de tous les noms de variables que vous avez mal orthographiés. – Sammitch

+0

Oy. La plupart d'entre eux provenaient de mon professeur. lol c'est embarrassant. Je vais devoir faire ça et voir si ça marche. Merci pour l'information! – Zazabar

+0

Alors ... c'est les variables ldap qui sont mal orthographiées? – Zazabar

Répondre

0

Comme souligné par un autre utilisateur (@Sammitch dans les commentaires), il y a quelques fautes d'orthographe dans la variable php. Essayez ce code ci-dessous, j'ai trouvé et corrigé les fautes d'orthographe dans les variables, rien d'autre, en dehors de ce code semble très bien.

Voir également la suggestion @Sammitch de permettre une erreur de déclaration

<?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

Vous êtes excellent. Je tirais mes cheveux en essayant de comprendre ce qui n'allait pas. Je ne peux pas croire que c'était quelque chose d'aussi ridicule que ça. Peu importe, merci ** très ** beaucoup! – Zazabar

+0

@Zazabar Content de savoir que cela a aidé. –