gpt4 book ai didi

php - ldap修改: invalid format (line 5) entry: "... " on LDIF (passed from PHP)

转载 作者:行者123 更新时间:2023-12-02 21:49:13 25 4
gpt4 key购买 nike

我正在尝试编写一些代码,允许用户通过 PHP 网络界面更改他们过期的 Active Directory 密码。由于 PHP 的 ldap 库* 的限制,似乎唯一的方法是生成一个 ldif,然后将其直接传递给 ldapmodify。

我想出的代码(减去变量)是:

ldapmodify -H {$ad_server} -D '{$dn}' -w {$old} <<!
dn: {$dn}
changetype: modify
delete: unicodePwd
unicodePwd:: {$oldPassword}
-
add: unicodePwd
unicodePwd:: {$newPassword}
-
!

当我将生成的代码直接粘贴到我的控制台时,代码似乎工作正常,但到目前为止,我还没有从 PHP 运行它。

我最初尝试将代码传递给 exec,结果却得到了 exitcode 247(这似乎不是真的)

然后我尝试改用 proc_open,它提供了当前错误

ldapmodify: invalid format (line 5) entry: " ... "

据我所知,第 5 行的唯一内容是“-”。所以我对可能出了什么问题有点困惑。

附言我也看了这篇文章 LDIF file error?? Invalid Format?它报告了一个类似的问题,虽然假设“-”字符的编码是问题所在,但我不确定我能用 PHP 真正用它做什么(mb_string_encoding 整个字符串到 utf-8 似乎没有任何影响)

这也在 solaris 机器上运行,这也可能是一个因素。

*PHP 无法在单个命令中执行两个操作,这是在 AD 中更改用户密码所必需的。 (据我所知)

编辑:不知道为什么这会得到反对票,但我很高兴有人告诉我我是个白痴,如果我在做一些明显愚蠢的事情而不注意(只要你指出那是什么,就像我一样)已经坚持了一段时间)

最佳答案

多亏了 freenode 上的#ldap channel 的一些帮助,事实证明我确实是个白痴(特别是考虑到我一天中的大部分时间都在戳戳这个问题)。

当 LDIF 在“-”之后包含 Windows 换行符时,ldapmodify 似乎不喜欢它在 sublime 中将行尾从 Windows 切换到 unix 已经解决了我的问题*。

关于php - ldap修改: invalid format (line 5) entry: "... " on LDIF (passed from PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18987591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com