当ldap_bind上的凭据无效时,无论如何都可以避免屏幕上的php警告,但是没有使用@ldap_bind或error_reporting设置为0?
我尝试过:
try {
if(!ldap_bind($ds, $binddn, $password)) {
throw new Exception('Invalid credentials');
}
} catch (Exception $e) {
var_dump($e->getMessage());
}
但它不起作用。屏幕上仍然显示PHP警告。
有人知道解决方案吗?
答案 0 :(得分:1)
查看http://php.net/manual/de/errorfunc.configuration.php#ini.display-errors
它与ldap-extension无关,但与你的php设置无关。您应该使用php.ini中的log_errors
- 指令将错误记录到错误日志中。
由于ldap-extension目前不会抛出异常,因此将ldap_bind
包装到try-catch
- Block中并不会有太多运气。您可以在调用任何ldap函数之前添加自定义错误处理程序,并将其替换为default-error-handler。
为此,请查看http://php.net/manual/de/function.set-error-handler.php和https://github.com/zendframework/zend-ldap/blob/master/src/Ldap.php#L825-L827