这是我的代码,它运作正常。
$authenticated = ldap_bind($conn, $this->username . "@" . $servidor_dominio, $this->password);
此函数的描述指定它返回bool。当用户键入错误的用户名和密码组合时,我从服务器收到错误:
Error 500. ldap_bind(): Unable to bind to server: Invalid credentials
这确实是一个PHP警告,但它会停止执行我的应用程序。它甚至显示了堆栈跟踪页面(我正在使用Yii PHP Framework)。
我尝试捕获异常,将ldap_bind()调用放在try / catch块中:
try {
$authenticated = ldap_bind($conn, $this->username . "@" . $servidor_dominio, $this->password);
} catch (Exception $exc) {
echo $exc->getTraceAsString();
}
它没有捕获任何异常,我仍然遇到同样的错误:
Error 500 ldap_bind(): Unable to bind to server: Invalid credentials
有人可以帮我吗?我的用户似乎经常错过他们的登录凭据类型; - )
答案 0 :(得分:1)
只需在ldap_bind前放置一个@符号,然后使用$ authenticated变量向用户显示正确的身份验证。
$authenticated = @ldap_bind($conn, $this->username . "@" . $servidor_dominio, $this->password);