2017-10-20 74 views
-1

我试图创建一个php脚本来检查我的ldap目录中是否存在用户名和密码组合。我会发布我到目前为止。创建一个PHP脚本,将在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."; 
} 
} 

?> 

如果你需要它,这里是我的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很高兴知道这有助于。 –

相关问题