对你的查询试试用LDAP客户端工具先试一下

解决方案 »

  1.   

    用ldap的客户端试了 能正常找到记录
    这个例子的问题出在ldap_search()这个函数的第二个参数上
    例子里面是 o=My Company, c=US 但是看了一些相关文章 说要写 dc=前面域名,dc=后面域名
    我的机器没有配置 dns 就是在host 里面写上了 我的ip=test.com
    然后我写的dc=test,dc=com可是还是有问题
    另外我的服务器是iis的
      

  2.   

    $sr=ldap_search($ds,"o=My Company, c=US", "sn=S*"); 有问题......查一下手册,这有个例子参考一下:
    <?php
    // $ds is a valid link identifier for a directory server// $person is all or part of a person's name, eg "Jo"$dn = "o=My Company, c=US";
    $filter="(|(sn=$person*)(givenname=$person*))";
    $justthese = array("ou", "sn", "givenname", "mail");$sr=ldap_search($ds, $dn, $filter, $justthese);$info = ldap_get_entries($ds, $sr);echo $info["count"]." entries returned\n";
    ?>
      

  3.   

    我现在已经把程序改成
    $ds=ldap_connect("localhost");  // 先连上有效的 LDAP 服务器
    echo "连上 ".$ds."<p>";if ($ds) {
        echo "Binding ...";
        $r=ldap_bind($ds,"cn=administrator,cn=users,dc=otc,dc=com","234");
        echo "Bind 返回 ".$r."<p>";
        echo "Searching for (sn=S*) ...";  // 找寻 S 开头的姓氏
        $sr=ldap_search($ds,"dc=otc,dc=com","sn=S*"); 
    //以下程序忽略在ldap_bind这行如果 把后面的dc=otc,dc=com做稍微一点改动 则ldap_bind这个函数就报错
    那么就说明这2个dc写的是正确的
    那么下面的ldap_search函数的参数就也应该是正确的 可是运行以后还是报错
    Warning: ldap_search() [function.ldap-search]: Search: Can't contact LDAP server in
      

  4.   

    ldap_search
    列出树状简表。语法: int ldap_search(int handle, string base_dn, string filter, array [attributes]);返回值: 整数函数种类: 网络系统
     
     
    内容说明 
    本函数用来列出树状资料,它的值域条件是 LDAP_SCOPE_SUBTREE。参数 handle 为打开 LDAP 的代号。参数 base_dn 为最基本的 dn 条件值,例如包括 o 和 c 二字段。参数 filter 为布尔条件,它的语法可以在 Netscape 站上找一份 dirsdkpg.pdf 文件,其中的 Search Syntax 一部份有详细的说明。参数 attributes 可省略,用来配置更细的列出属性。
     
     
    使用范例 
    下面范例为片段程序<?php
    $dn = "o=SuperLDAP Company, c=TW";
    $filter="(|(sn=$person*)(givenname=$person*))";
    $justthese = array( "ou", "sn", "givenname", "mail");
    $sr=ldap_search($ds, $dn, $filter, $justthese);
    $info = ldap_get_entries($ds, $sr);
    print $info["count"]." entries returned<p>";
    ?> 
    从上面的资料来看,好像真的是你的字符串有问题了,重新写下吧。这个东西我使用的不多,只是看到楼主的帖子才找了下资料,嘿嘿~全当是我胡乱说吧