好象问题出在第10行,$sr=ldap_search($ds,"dc=youDomain,dc=local","sn=A*");
这是基于你ldap的基本dn为"dc=youDomain,dc=local",也就是你的域名为(youDomain.local),可以试一试!

解决方案 »

  1.   

    simon_mstream(脖子):
        問題是出在第10行.    如果我的Domain=hamagawa;local=MailServer;是不是可以寫成:
      
          $sr=ldap_search($ds,"dc=hamagawa,dc=MailServer","sn=A*");    但是試過后的結果仍是相同的錯誤提示.
      

  2.   

    比如你的域名为hamagawa.com;那么
    $sr=ldap_search($ds,"dc=hamagawa,dc=com","sn=A*");
    如果还有问题,请检查你LDAP服务器(或windows2000的Active Directory)的设置。
      

  3.   

    另外请将
    $ds=ldap_connect("sqlserver");
    写成
    $ds=ldap_connect("YourLdapIpAdress");试一下
      

  4.   

    请改
    $ds=ldap_connect("sqlserver");成
    $ds=ldap_connect("你的IP地址");试一下。
      

  5.   

    simon_mstream(脖子)﹕
       我試了你的方法它返回的提示是這樣子的﹕
         LDAP 搜索測試
         連接中 ...連上Resource id #1
         Binding ...Bind傳回 1     Warning: LDAP: Unable to perform the search: Can't contact
         LDAP server in C:\Inetpub\wwwroot\ISO Document IIS 
         Application\ldap\ldap.php on line 10 Search傳回     Warning: Supplied argument is not a valid ldap result resource 
        in C:\Inetpub\wwwroot\ISO Document IIS Application\ldap\ldap.php
       on line 12 Warning: Supplied argument is not a valid ldap result 
       resource in C:\Inetpub\wwwroot\ISO Document IIS 
       Application\ldap\ldap.php on line 13 ????
      

  6.   

    1.<?php
    2.echo "LDAP 搜索測試</h3>";
    3.echo "連接中 ...";
    4.$ds=ldap_connect("你的LDAP服务器IP地址",3268);<--如果是win2k的AD
    5.echo "連上".$ds."<p>";
    6.if ($ds) {
    7.    echo "Binding ...";
    8.    $r=ldap_bind($ds,"cn=有域操作权限的用户名,cn=用户所在容器,dc=域名前半,dc=域名的后半","用户密码");//注:win2k必须使用有域操作权限的用户操作LDAP,比如:
    //$dn="cn=administrator,cn=users,dc=aaa,dc=com";9.    echo "Bind傳回 ".$r."<p>";
    10.    $sr=ldap_search($ds,"dc=域名前半,dc=域名后半","sn=A*");
    11.    echo "Search傳回 ".$sr."<p>";
    12.    echo ldap_count_entries($ds,$sr);
    13.    $info = ldap_get_entries($ds, $sr);
    14.    for ($i=0; $i<$info["count"]; $i++) {
    15.        echo "dn ?: ". $info[$i]["dn"] ."<br>";
    16.        echo "cn ?: ". $info[$i]["cn"][0] ."<br>";
    17.        echo "email ?: ". $info[$i]["mail"][0] ."<p>";
    18.    }
    19.    echo "????";
    20.    ldap_close($ds);
    21.} else {
    22.    echo "<h4>無法接到 LDAP 伺服器</h4>";
    23.}
    24.?>按照上面的操作方法试一下,一定要保证你的服务器配置正确(win2k的AD是正常的).
      

  7.   

    还有如果是IIS的化请改用apache,php4有很多函数是apache专用的
      

  8.   

    simon_mstream(脖子): 行了。已經OK了。謝謝你的指點!