创建一个 PHP 脚本来检查 LDAP 中的用户名和密码组合
Creating a PHP script that will check for username and password combo in LDAP
我正在尝试创建一个 php 脚本来检查我的 ldap 目录中是否存在用户名和密码组合。我会post我目前所拥有的。
<?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 还是很陌生,因为我的代码清楚地表明了这一点。任何帮助将不胜感激。
我也会根据建议进行更改以及我发现不合适的任何地方来编辑我的代码。
正如其他用户(评论中的@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.";
}
}
?>
我正在尝试创建一个 php 脚本来检查我的 ldap 目录中是否存在用户名和密码组合。我会post我目前所拥有的。
<?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 还是很陌生,因为我的代码清楚地表明了这一点。任何帮助将不胜感激。
我也会根据建议进行更改以及我发现不合适的任何地方来编辑我的代码。
正如其他用户(评论中的@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.";
}
}
?>