为什么ldap_modify没有将项值发送到ldap服务器?

时间:2013-10-11 19:37:41

标签: php ldap

我用PHP编写了一个软件,重置了用户的密码。它在我的旧Apache服务器运行PHP 5.1.4版本中运行良好(我不确定,但我相信它有openldap版本2.2.13.6)。现在我将相同的软件移植到更新版本的Apache(实际上是Weblogic 10.3.6)。

在这个新环境中,我安装了PHP 5.3.27和openldap 2.4.30(根据phpinfo)。

更改密码的代码片段是:

$modifyPass["userPassword"]=$pass;
if (ldap_mod_replace($ds,$dn,$modifyPass)) 
{print "success";}
else {print "Fail";}

我在两个版本的PHP中运行代码时都运行了网络嗅探器,在这两种情况下,您都可以在wiershark中看到modifyrequest,并从ldap服务器中看到成功的修改响应,但是较新的PHP版本的modifyrequest具有空值对于userPassword属性。 (旧版本完美运行,它显示了项目的预期值。)

我尝试使用ldap_modify和ldap_mod_replace。我有同样的结果。

任何帮助,都会非常感激, 非常感谢你, 安德烈

PS:我应该澄清代码总是选择“打印成功”的分支,并且我确保$ pass具有正确的值。

0 个答案:

没有答案