php中,ldap验证的错误: 这个报错始终解决不了,可否相告~

<?php

$ds=ldap_connect("10.20.10.21:389");
$db=ldap_bind($ds,"cn=myname,dc=sinatay,dc=com","mapass");
if($db){

echo "验证通过";
}
else
echo "fail";

?>

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid credentials in D:\xampp\htdocs\iilearn\test1.php on line 8
fail
不要别处拷贝过来的答案,我现在是能connect,也能bind匿名用户,但是如果同时加密码的话就不行了,
如果上面改写成:$db=ldap_bind($ds,"cn=myname,dc=sinatay,dc=com"); 就不会报错

在 LDAP 的协议之中,很像硬盘目录结构或倒过来的树状结构。LDAP 的根就是全世界,第一级是属于国别 (countries) 性质的层级,之后可能会有公司 (organization) 的层级,接着是部门 (organizationalUnit),再来为个人。而就像文件,每个人都会有所谓的显名 (distinguished name, 简称 dn),dn 可能像酱子 cn=John Smith,ou=Accounts,o=My Company,c=US。

<?php
// 本例使用到 connect, bind, search, interpret search
// result, close connection 等等 LDAP 的功能。
echo "<h3>LDAP 搜寻测试</h3>";
echo "连接中 ...";
$ds=ldap_connect("localhost"); // 先连上有效的 LDAP 服务器
echo "连上 ".$ds."<p>";

if ($ds) {
echo "Binding ...";
$r=ldap_bind($ds); // 匿名的 bind,为只读属性
echo "Bind 返回 ".$r."<p>";
echo "Searching for (sn=S*) ..."; // 找寻 S 开头的姓氏
$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
echo "Search 返回 ".$sr."<p>";
echo "S 开头的姓氏有 ".ldap_count_entries($ds,$sr)." 个<p>";
echo "取回姓氏资料 ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "资料返回 ".$info["count"]." 笔:<p>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn 为: ". $info[$i]["dn"] ."<br>";
echo "cn 为: ". $info[$i]["cn"][0] ."<br>";
echo "email 为: ". $info[$i]["mail"][0] ."<p>";
}
echo "关闭链接";
ldap_close($ds);
} else {
echo "<h4>无法连接到 LDAP 服务器</h4>";
}
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-13
你好,你在百度知道里提过一个关于PHP连接到LDAP里面然后bind报错的问题,我想问你现在得到解决没,望回复,万分感谢!!!本回答被网友采纳
第2个回答  2010-09-21
应该和你存储的时候是否带密码有关系。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网