为了账号安全,请及时绑定邮箱和手机立即绑定

无法捕获 Ldap_add 异常

无法捕获 Ldap_add 异常

PHP
桃花长相依 2023-10-15 16:41:41
我是第一次使用 LDAP,以及 PHP / symfony:我成功连接到 LDAP 服务器,并且可以搜索和添加用户/组,没有什么大问题。但是,当我尝试添加已存在的用户时,我收到以下警告:HTTP 500 内部服务器错误警告:ldap_add():添加:已存在我想捕获它,因为它会抛出异常,并且可以为用户替换为简单的 toast“失败:CN 已在使用中”。但是,我找不到这样做的方法,并且不明白为什么 symfony 会引发这样的异常,其中 ldap_add 只应在失败时返回“false”。(成功时确实返回 true):ldap_add 手册编辑:这是有罪的代码。选项很好,当我创建新用户时请求成功。我尝试了几种方法来捕获错误,但似乎不可能捕获警告  try {    $result = ldap_add($ldapconn, $userdn, $user);    } catch(Throwable  $e) {    echo $e->getMessage();}
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

默认情况下,Symfony 将警告转换为异常...仅在开发环境中

这是一个明智的选择,可以避免生产中发生意外行为时导致生产爆炸。

如果出现错误,ldap_add 函数将返回 false。这就是你应该检查的。您可能想完全关闭警告,可以通过使用@ldap_add来实现。

也就是说,这里有两种选择。

  1. 您可能想要使用 PHP Safe 库,它将警告转换为异常。这是一个示例: https: //github.com/thecodingmachine/safe

  2. 你也可以临时设置自己的错误监听器来抛出异常,实际上有时 Symfony 在它自己的代码库中这样做。这是一个示例: https: //github.com/symfony/symfony/blob/27d84dbe57ce65203b26232b87e6660fdba2f30e/src/Symfony/Component/String/AbstractString.php#L509最重要的是不要避免恢复原始错误处理程序。

回来我帮忙了!


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信