我在使用LDAP得到這個錯誤,我知道我的最大數量爲25LDAP大小越界 - 捕捉警告
Warning: ldap_search() [function.ldap-search]: Partial search results returned: Sizelimit exceeded in
我怎麼能抓住這個和輸出部分結果,並顯示有取得了許多成果。或者我可以只顯示有很多結果嗎?
任何想法?
我在使用LDAP得到這個錯誤,我知道我的最大數量爲25LDAP大小越界 - 捕捉警告
Warning: ldap_search() [function.ldap-search]: Partial search results returned: Sizelimit exceeded in
我怎麼能抓住這個和輸出部分結果,並顯示有取得了許多成果。或者我可以只顯示有很多結果嗎?
任何想法?
目錄服務器強加的限制:
根據服務器的不同,可以通過全局配置,通過客戶端連接策略或基於身份驗證標識來施加限制。搜索響應中的結果表明部分結果已返回給客戶端。客戶可以(也應該)在搜索請求中加入大小限制和時間限制,但這些限制(稱爲客戶請求的限制)不能覆蓋服務器限制。
一個正確編碼的API將返回最多爲sizelimit條目數的條目。換句話說,如果有3個條目與搜索參數匹配,則客戶端將客戶端請求的大小限制設置爲2,服務器將返回2個條目(以任意順序,LDAP條目不排序,即排序不是可重複),並將搜索結果代碼設置爲「超出尺寸限制」。
雖然AD使用1000可能是常識,但應用程序不得使用服務器供應商,版本或配置方面的知識進行編碼。這樣做是糟糕的形式,而不是專業的,並導致脆弱,不可維護的代碼。爲您的應用程序編碼,因爲您連接的服務器是完全符合IETF LDAP目錄標準的通用LDAP服務器。
我的blog entry有一些關於搜索請求和搜索響應的討論,並且我還創建了一篇LDAP: Programming Practices文章。
$resource = ldap_search($link_identifier, $base_dn, $filter);
if (ldap_errno($link_identifier) === 4)
echo 'Partial search results returned';
或
$resource = ldap_search($link_identifier, $base_dn, $filter);
if (strtoupper(ldap_error($link_identifier)) === 'SIZE LIMIT EXCEEDED')
echo 'Partial search results returned';
http://stackoverflow.com/questions/1241728/try-and-catch-a-warning –
什麼LADP版本?打開? –
Sheifs評論是完美的,生病使用該方法! – Luke