2010-03-23 67 views
1

我試圖用php web應用程序連接到ldap。如果用戶名/密碼正確無誤,但是如果用戶名/密碼不正確,我會得到以下錯誤:php/ldap - 綁定失敗,但errorno沒有執行

PHP警告:ldap_bind()[function.ldap-bind]:無法綁定到服務器:無效的憑據

由於某種原因,我無法查看errorno或綁定變量的狀態,之後打印出適合用戶友好的錯誤消息。

有什麼想法?

回答

3

的問題是最有可能ldap_errno採取LDAP 連接資源,和ldap_bind失敗,你不能使用它的結果來檢索錯誤號。

另外:你有沒有試圖通過@標誌抑制錯誤?

例如爲:

$ldapconn = ldap_connect("localhost"); 
@$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 

if($ldapbind) 
{ 
    // Everything went fine 
} else { 
    // Use the connection resource for ldap_errno 
    $errno = ldap_errno($ldapconn); 

    // Check the error number, print an error message (...) 
} 
+0

謝謝,我不知道用@符號的surpress選項。它解決了這個問題;) – 2010-03-23 15:29:23

1

你必須檢查,如果你的LDAP連接是試圖綁定之前確定:

​​
+0

他的問題是關於'ldap_bind'失敗時顯示的錯誤消息。如何檢查連接資源的幫助? – lamas 2010-03-23 15:26:24

+0

你是對的。 Neverthless ldap_bind需要一個有效的資源鏈接標識符作爲第一個參數,所以在嘗試綁定之前值得對其進行測試。 我不是@符號的忠實粉絲,它有時會隱藏真正的問題。 – 2010-03-23 15:42:17

+0

他想隱藏用戶的PHP錯誤,自己輸出一個用戶友好的錯誤。這裏@符號的問題在哪裏? – lamas 2010-03-23 15:59:29

相關問題