Php ldap_绑定失败并发出警告,但继续执行if语句
我正在使用ldap进行身份验证,并在输入正确的凭据时使其全部正常工作。但是,如果用户无效或密码不正确,ldap_绑定将发出以下警告:Php ldap_绑定失败并发出警告,但继续执行if语句,php,ldap,Php,Ldap,我正在使用ldap进行身份验证,并在输入正确的凭据时使其全部正常工作。但是,如果用户无效或密码不正确,ldap_绑定将发出以下警告: Warning: ldap_bind(): Unable to bind to server: Invalid credentials... 这意味着我认为应该检查ldap_绑定是否工作的以下行在失败时正在执行: $ldapbind = ldap_bind($ldapconn,"uid=$username,cn=users,dc=abc,dc=net", "$p
Warning: ldap_bind(): Unable to bind to server: Invalid credentials...
这意味着我认为应该检查ldap_绑定是否工作的以下行在失败时正在执行:
$ldapbind = ldap_bind($ldapconn,"uid=$username,cn=users,dc=abc,dc=net", "$password");
if ($ldapbind) {
我是否需要更改if语句,以使无效凭据的警告导致失败并移动到else语句?我试过以下方法,但都没有效果
if (($ds) !== false )
您可以尝试:
$ldapbind = @ldap_bind($ldapconn,"uid=$username,cn=users,dc=abc,dc=net", "$password");
if ($ldapbind) {
令人惊讶的是,这似乎对我起了作用。你能解释一下@符号的作用吗?或者更确切地说是对其工作原理的解释?@a.smith“@”会抑制错误消息。但是在您的情况下,错误是一条有效的消息,不应该被抑制。如果错误消息显示在输出中,则这是一个完全不同的主题。这意味着您将
display\u errors
设置为true
,这在生产系统上是绝对不应该做的。有关@
的更多信息,请查看