创建一个PHP脚本,用于检查LDAP中的用户名和密码组合

时间:2017-10-20 23:26:59

标签: php ldap passwords username verification

我正在尝试创建一个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中仍然很绿,因为我的代码清楚地显示了这一点。任何帮助将不胜感激。

我还会编辑我的代码,因为我提出了建议的更改以及我认为不合适的任何内容。

1 个答案:

答案 0 :(得分:0)

正如其他用户(评论中的@Sammitch)所指出的,php变量中的拼写错误很少。

尝试下面这段代码,我发现并修复了变量中的拼写错误,除了这段代码看起来没什么别的。

还要考虑@Sammitch启用错误报告的建议

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