php连ldap时 ldap_search不到数据的问题 急!!!我的环境是php4 按php4手册里的例子,改了改做上的:<?php
// 本例使用到 connect, bind, search, interpret search
// result, close connection 等等 LDAP 的功能。
echo "<h3>LDAP 搜寻测试</h3>";
echo "连接中 ...";
$ds=ldap_connect("192.168.0.105:389");  // 先连上有效的 LDAP 服务器
echo "连上 ".$ds."<p>";if ($ds) {
    echo "Binding ...";
    $r=ldap_bind($ds);          // 匿名的 bind,为只读属性
    echo "Bind 返回 ".$r."<p>";
    echo "Searching for (sn=z*) ...";  // 找寻 z 开头的姓氏
    $sr=ldap_search($ds,"dc=rmgab,dc=com", "sn=z*");          //dc=rmgab,dc=com这里,到底要写什么?这是我的域环境
    echo "Search 返回 ".$sr."<p>";
    echo "z 开头的姓氏有 ".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>";
}
?>报错为LDAP 搜寻测试
连接中 ...连上 Resource id #2
Binding ...Bind 返回 1Searching for (sn=z*) ...
Warning: ldap_search(): Search: Operations error in c:\appserv\www\ldap\test2.php on line 14
Search 返回 
Warning: ldap_count_entries(): supplied argument is not a valid ldap result resource in c:\appserv\www\ldap\test2.php on line 16
z 开头的姓氏有 个取回姓氏资料 ...
Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in c:\appserv\www\ldap\test2.php on line 18
资料返回 笔:关闭链接
我觉得就是上面红字那里可能出了点问题~~  所以第14行报错说操作失误~~  后面的问题,因为就是上面取不到结果造成的~~
呵,各位~~  多帮忙~~  多谢~~

解决方案 »

  1.   

    dc=rmgab,dc=com这里设定的是你的域名信息
      

  2.   

    恩,我设的没问题呀.....现在变成Warning: ldap_search(): Search: Can't contact LDAP server in了???我是在虚拟机里做的???是不是有影响??   虚拟机里是windows2003域,设成纯2000模式了.在公司到是真的取到信息了???   公司是windows2000到底问题出在哪呀?????
      

  3.   

    ladp主要在域名服务器下跑的,
    确定域名服务器没问题吗?
      

  4.   

    感觉在连接服务器的时候就应该用域名
    你看看这里的例子,
    http://www.php.net/manual/en/function.ldap-connect.php
      

  5.   

    你在ldap_bind别用匿名用户,使用实际的帐号试试,我用php连AD,只要是匿名ldap_search都会报错,用实际用户就没有问题。
      

  6.   

    一个是:ldap_simple_bind_s(ld, "cn = administrator, cn = Users, dc = test2, dc = develop, dc = cn", "XXXX") 
    二个是设置:ldap_set_option(),因为你从window 域控不能完全发送认证信息