我正在尝试创建一个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 :(得分: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.";
}
}
?>