我有以下代码:
if($_POST){
$ldap['user'] = $_POST['user'];
$ldap['pass'] = $_POST['pass'];
$ldap['conn'] = ldap_connect('my_ip')
or die("Could not connect to {'my_ip'}" );
ldap_set_option($ldap['conn'], LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap['conn'], LDAP_OPT_REFERRALS, 0);
$ldap['bind'] = @ldap_bind($ldap['conn'], $ldap['user'], $ldap['pass']);
if( !$ldap['bind'] )
{
echo ldap_error( $ldap['conn'] );
exit;
}及一份登入表格:
<form method="POST" action="">
<p>
User Name:
<input type="text" name="user" >
Password:
<input type="password" name="pass" >
<input type="submit" name="submit" value="Submit">
</p>
</form>一切正常工作,除了,为了工作,我必须输入整个DN作为用户名。就像这样:uid=user,ou=people,dc=my-domain,dc=com。
我想要的是设置基本dn并将uid作为必要的用户名。
我尝试用$basedn = 'dc=mydomain,dc=de'and $filter="uid"设置$sr=ldap_search($filter, $basedn);,但不知道如何将它绑定到登录$_POST变量。
发布于 2014-02-25 12:38:08
在仔细研究了其他问题之后,我找到了一个副本,并给出了适当的答案。
LDAP bind using POST variable for UID?
因此,根据泽诺德的说法:
$ldap['user'] = 'uid =' . $_POST['user'] . ',ou=XXX,dc=XXX,dc=XXX,dc=XXX';或
$ldap['user'] = "uid =$_POST['user'],ou=XXX,dc=XXX,dc=XXX,dc=XXX";https://stackoverflow.com/questions/22013314
复制相似问题