好像是缺少pear.php,谁能提供pear.php??

解决方案 »

  1.   

    到pear.php.net上下载目前我也在写有关ldap的操作(认证部分),不过我也是菜鸟。
    下面是我测试的代码
    我现在也有个问题,就是ldap_compare()怎样用?
    php.net上给的例子是ldap较老版本的,目前的不适用,比如说
    $filter = "(&(objectclass=*)(cn=ego))";
    这就是改过的样式咱们共同探讨把<?PHP
    $ldap_host = "192.168.8.140";
    $ldap_port = 389;$base_dn = "dc=test,dc=com";
    $filter = "(&(objectclass=*)(cn=ego))";$ldap_user  = "uid=ego,ou=people,dc=test,dc=com";
    $ldap_pass = "abc";$connect = ldap_connect( $ldap_host, $ldap_port)
          or exit(">>Could not connect to LDAP server<<");ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);if(ldap_bind($connect, $ldap_user, $ldap_pass)){ $search = ldap_search($connect, $base_dn, $filter) or exit(">>Unable to search ldap server<<");
    $read = ldap_read($connect, $base_dn, $filter) or exit(">>Unable to search ldap server<<"); $info = ldap_get_entries($connect, $search); echo "<br>".$info["count"]." entries returned";
    echo "<br>userpassword:".$info[0]["userpassword"][0];
    echo "<hr>".$info[0]["dn"]."<hr>"; $ii=0;
    for ($i=0; $ii<=$info[$i]["count"]; $ii++){
       $data = $info[$i][$ii];
    echo $data.":&nbsp;&nbsp;".$info[$i][$data][0]."<br>";
    }
    // compare value begin
    $dn = "uid=ego,ou=people,(dc=test,dc=com)";
    $attr = "nihao"; 
    $value = "{crypt}".crypt($attr); echo "{crypt}$1$235tO2Wn$jKWw/5/KGrUQJ08lbAbJo.==".crypt("nihao",substr($mm,0,2))."<br>"; $compare = ldap_compare($connect, $dn, $attr, $value); if ($compare === -1) {
    echo "Error: ".ldap_error($connect);
    } elseif ($compare === TRUE) {
    echo "Password correct.";
    } elseif ($compare === FALSE) {
    echo "Wrong guess! Password incorrect.";
    }//end    } else {
            echo "Unable to bind to LDAP server.";
        }          
    ldap_close($connect);
    ?>
      

  2.   

    已经找到了,不过还是有问题:我在配置php.ini时,;Windows Extensions
    ;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
    ;
    extension=php_ldap.dll将其中的Windows扩展php_ldap.dll打开,但出现如下错误,请指教:Unknown(): Unable to load dynamic library 'c:\php4\extensions\php_ldap.dll'-找不到指定的模块。
    呵呵,这位老兄,方便的话,Email联系:[email protected]
      

  3.   

    谢谢,问题解决了。因为我没有把dlls文件夹中的dll文件拷贝到c:\winnt\system32下。解决办法:将所有dlls文件夹中的dll文件复制到c:\winnt\system32下
      

  4.   

    谢谢,问题已经解决了,将dlls文件夹中的所有dll文件复制到c:\winnt\system32中即可
      

  5.   

    dlls文件夹是可以指定的。不一定非要c:\winnt\system32
      

  6.   

    还有一个问题,从LDAP服务器搜索到结果后,返回的CN中包含的中文字符不能正常显示,只有乱码。dn is: CN=钄℃櫠,O=OaTeam
    first cn entry is: 钄℃櫠但是,我的php.ini文件中已经设置好中文字符集:
    default_mimetype = "text/html"
    default_charset = "gb2312"可能是哪方面的原因呢??对了,你的ldap_compare的问题,请参考:
    http://www.php.net/manual/zh/function.ldap-compare.php
    不知道对你有没有什么帮助?