LDAP PHP查詢無結果可能有以下幾個原因:
連接問題:請檢查您的LDAP服務器地址、端口、用戶名和密碼是否正確。確保您的PHP LDAP擴展已安裝并啟用。
查詢語法錯誤:請檢查您的查詢語句是否正確。LDAP查詢通常使用ldap_search()
或ldap_query()
函數。確保您使用了正確的搜索基礎(base DN)和過濾器。
權限問題:請確保您的LDAP用戶具有足夠的權限來查詢所需的信息。有些LDAP服務器可能需要用戶具有特定的訪問級別或角色才能執行查詢。
數據問題:請檢查您的LDAP服務器上的數據是否正確。可能沒有符合您查詢條件的數據項。
超時問題:如果您的查詢范圍很大或LDAP服務器響應較慢,可能會導致查詢超時。您可以嘗試增加PHP LDAP查詢的超時限制。
要調試LDAP PHP查詢,您可以使用ldap_error()
和ldap_error_string()
函數來獲取錯誤信息和錯誤代碼。這將幫助您確定問題的根源。
例如:
$conn = ldap_connect("ldap.example.com", 389);
if (!$conn) {
die("連接失敗: " . ldap_error());
}
$search_base = "ou=users,dc=example,dc=com";
$search_filter = "(objectClass=person)";
$search_attributes = array("sn", "cn");
$search_result = ldap_search($conn, $search_base, $search_filter, $search_attributes);
if ($search_result === false) {
die("查詢失敗: " . ldap_error());
} else {
$info = ldap_get_entries($conn, $search_result);
print_r($info);
}
ldap_free_result($search_result);
ldap_close($conn);
這段代碼將嘗試連接到LDAP服務器,執行一個基本的查詢,并打印結果。如果在任何時候發生錯誤,它將顯示錯誤信息和代碼。