PHP LDAP Overcoming Size Limit

旧时模样 提交于 2019-12-25 03:54:46

问题


I have a very old network box, that has PHP4 and a variation of LDAP installed on it.

Querying information isn't normally an issue when the returned results are small, but I'm trying to get all entries in one specific CN

This results in 'Warning: ldap_search() [function.ldap-search]: Partial search results returned: Sizelimit exceeded'

All the suggestions I've read have been for PHP5+ and Active directory, nothing for something this OLD.

I'm hoping you can help.

This is my very simple ldap query. $r is the connection.

$result = ldap_search($r, "cn=location", "(cn=*)");
$entry = ldap_first_entry($r, $result);

do {
    $dn = ldap_get_dn($r, $entry);
    echo "DN is $dn\n";
} 
while ($entry = ldap_next_entry($r, $entry)); 

ldap_close($r);

This works until I hit the limit. I have tried changing the limit using LDAP_OPT_SIZELIMIT but obviously that didn't help.

What I'm wondering is.. is there any way to count the entries and then process them in smaller more manageable batches using something like :

$sr=ldap_list($r, "cn=location","cn>=".$last_location);

Is that possible ? any other ideas ?

Thanks


回答1:


According to php.net/manual/...ldap-search, you should set the $sizelimit parameter to 0 to disable the memory limit. It will not, however, override the LDAP server configuration, if that is the cause of the error.

The function call will look something like the following:

ldap_search($r, "cn=location", "(cn=*)", null, 0, 0);

I'm not clear on how the filter parameter works, so you may need to change it if you get an error there. See the above link for descriptions on all of the parameters for ldap_search().



来源:https://stackoverflow.com/questions/24913366/php-ldap-overcoming-size-limit

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!