代码之家  ›  专栏  ›  技术社区  ›  Zazabar

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

  •  -1
  • Zazabar  · 技术社区  · 7 年前

    我试图创建一个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.";
    }
    }
    
    ?>
    

    <!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 回复  |  直到 7 年前
        1
  •  0
  •   Rathan Naik    7 年前

    正如其他用户(评论中的@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.";
        }
    }
    ?>