建议看一下phpldapadmin的源码。
里面会有你需要知道的答案

解决方案 »

  1.   

    http://cn.php.net/manual/zh/ref.ldap.php
      

  2.   

    我的代码:
    <?php
    $ldap["user"]="contacts";
    $ldap["password"]="backyard";
    $ldap["dn"]="dc=yahoo,dc=ali,dc=com";
    $justthese = array("ou", "sn", "givenname", "mail");
    $ldap["search"]="(cn=s*)";
    if($ldap["con"] = ldap_connect("yahoo.ali.com"))
    {
    echo "success!";
    if(ldap_bind($ldap["con"],$ldap["user"],$ldap["password"]))
    print("<br>LDAP bind worked for ".$ldap["user"]);if($search=@ldap_search($ldap["con"],$ldap["dn"],$ldap["search"],$justthese))
    {
    print("<br>find success!".$search."<br>");
    }
    else
    {
    print("<br>find failed".ldap_errno($ldap["con"]));
    }
    ?>结果:
    success!
    LDAP bind worked for contacts
    find failed1请问为什么会出现LDAP_OPERATIONS_ERROR          0x01 的错误
      

  3.   

    我觉得不管指不指定 OU ,dn只要存在,就可以对其对应的子树进行搜索
    phpldapadmin的源码 phpldapadmin/lib/server_functions.php 中判断dn是否存在的函数:function dnExists($link, $dn) {
    # Set default return
    $return = false;

    $search_result = @ldap_read($link, $dn, 'objectClass=*', array('dn')); if ($search_result) {
    $num_entries = ldap_count_entries($link,$search_result); if ($num_entries > 0) {
    $return = true;
    } else {
    $return = false;
    } } else {
    $return = false;
    }

    return $return;
    }而取得LOAP的所有OU应该用
    $search=@ldap_search($link, "dc=yahoo,dc=ali,dc=com", "(ou=*)", array("ou"))这是一个demo,可以试试
    http://thesmithfam.org/phpldapadmin-demo/htdocs/search.php?server_id=0&form=advanced
    =====================
     maria57(快乐的鱼) ( ) 信誉:100    Blog  2007-3-28 12:57:14  得分: 0  
    另外,如果不指定ou的话,能不能进行搜索啊?