Php ldap返回变量
我们对LDAP和其他东西还很陌生,到目前为止,我们所能做的似乎就是通过LDAP和LDAP身份验证来了解登录名/密码是好是坏(通过LDAP bind()和php) 我们想要做的是,在良好登录的情况下,从LDAP返回一个变量(例如,用户矩阵)。这可能吗?如果可能,怎么可能 LDPA函数的PHP文档示例:Php ldap返回变量,php,ldap,return-value,Php,Ldap,Return Value,我们对LDAP和其他东西还很陌生,到目前为止,我们所能做的似乎就是通过LDAP和LDAP身份验证来了解登录名/密码是好是坏(通过LDAP bind()和php) 我们想要做的是,在良好登录的情况下,从LDAP返回一个变量(例如,用户矩阵)。这可能吗?如果可能,怎么可能 LDPA函数的PHP文档示例: <?php // using ldap bind $ldaprdn = 'uname'; // ldap rdn or dn $ldappass = 'password'; //
<?php
// using ldap bind
$ldaprdn = 'uname'; // ldap rdn or dn
$ldappass = 'password'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
?>
那么在线php手册的ldap\u connect示例是错误的:
// Variables del servidor LDAP
$ldaphost = "ldap.example.com"; // servidor LDAP
$ldapport = 389; // puerto del servidor LDAP
// Conexión al servidor LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");
首先,您在
ldap\u connect()
之后执行或die()
,这使得您的if($ldapconn)
毫无意义-如果您做到了这一点,它将永远是正确的。其次,ldap\u connect()
总是正确的,因为它总是返回一个初始化的资源,直到您ldap\u bind()
,它才真正与服务器通信-这是您真正需要检查的结果。第三,什么?您的问题是“连接后如何查询目录”?完全正确。我们需要检查我们的用户/密码是否有效(使用LDAP绑定),然后,如果有效,要从目录中获取更多信息,您需要使用LDAP\u read()
/\u search()
/\u list()
)。您需要知道要获取的数据所使用的基本DN—您到底想要获取什么?您查询的是哪种LDAP服务器?广告还是别的什么?