关于LDAP的PHP编程,请高手指教!

richard2010 2003-05-08 04:52:53
出现如下错误:
Fatal error: Call to undefined function: ldap_connect() in c:\inetpub\wwwroot\test.php on line 36
...全文
77 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard2010 2003-05-13
  • 打赏
  • 举报
回复
还有一个问题,从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
不知道对你有没有什么帮助?

「已注销」 2003-05-12
  • 打赏
  • 举报
回复
dlls文件夹是可以指定的。不一定非要c:\winnt\system32
richard2010 2003-05-12
  • 打赏
  • 举报
回复
谢谢,问题已经解决了,将dlls文件夹中的所有dll文件复制到c:\winnt\system32中即可
richard2010 2003-05-12
  • 打赏
  • 举报
回复
谢谢,问题解决了。因为我没有把dlls文件夹中的dll文件拷贝到c:\winnt\system32下。解决办法:将所有dlls文件夹中的dll文件复制到c:\winnt\system32下
richard2010 2003-05-12
  • 打赏
  • 举报
回复
已经找到了,不过还是有问题:我在配置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联系:chencc@cape.com.cn
snolidge 2003-05-08
  • 打赏
  • 举报
回复
到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.":  ".$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);
?>

richard2010 2003-05-08
  • 打赏
  • 举报
回复
好像是缺少pear.php,谁能提供pear.php??

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧