This is a discussion on How to sort the search-result of ldap? within the PHP Language forums, part of the PHP Programming Forums category; Hi, I want to sort the result of ldap_search. Unfortunatelly ldap_sort() is still not documented, so I don't have ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi,
I want to sort the result of ldap_search. Unfortunatelly ldap_sort() is still not documented, so I don't have Idea how to use it. :( http://php.net/ldap_sort/ Could anyone of you help me? My code look as follow: >>> $ds = ldap_connect("LDAP://domain.tld"); $r = ldap_bind($ds, "CN=searchfoo,OU=Guests,OU=Benutzergruppen,DC=doma in,DC=tld","longpassword"); $sr = @ldap_search($ds,"OU=Benutzergruppen, DC=domain, DC=tld", "Company=" . $strCompany); $sr = ldap_sort($ds, $sr, 'givenname'); ldap_sort($ds, $sr, 'givenname'); $info = ldap_get_entries($ds, $sr); ldap_close($ds); <<< I get following error: Warning: ldap_sort() expects parameter 2 to be resource, boolean given in /usr/local/www/data-dist/test/telefonliste/index.php on line 9 Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in /usr/local/www/data-dist/test/telefonliste/index.php on line 10 What should I do? cu Floh |
|
|||
|
Florian Erfurth wrote:
> Hi, > I want to sort the result of ldap_search. Unfortunatelly ldap_sort() is > still not documented, so I don't have Idea how to use it. :( > > http://php.net/ldap_sort/ > > Could anyone of you help me? My code look as follow: > $ds = ldap_connect("LDAP://domain.tld"); > $r = > ldap_bind($ds, "CN=searchfoo,OU=Guests,OU=Benutzergruppen,DC=doma in,DC=tld","longpassword"); > $sr = @ldap_search($ds,"OU=Benutzergruppen, DC=domain, DC=tld", "Company=" . > $strCompany); > $sr = ldap_sort($ds, $sr, 'givenname'); > > ldap_sort($ds, $sr, 'givenname'); > $info = ldap_get_entries($ds, $sr); > > ldap_close($ds); > <<< > > I get following error: > Warning: ldap_sort() expects parameter 2 to be resource, boolean given > in /usr/local/www/data-dist/test/telefonliste/index.php on line 9 > > Warning: ldap_get_entries(): supplied argument is not a valid ldap result > resource in /usr/local/www/data-dist/test/telefonliste/index.php on line 10 > > What should I do? > cu Floh Hi $sr = @ldap_search($ds,"OU=Benutzergruppen, DC=domain, DC=tld", "Company=" . $strCompany); Here you supress the error by using @. I might very well return false or something, because the ldap_search was wrong. Stop surpressing it, and you'll get more possibly usefull information. $sr = ldap_sort($ds, $sr, 'givenname'); Why don't you do a print_r($sr) before using it? Regards, Erwin Moller |
|
|||
|
Erwin Moller wrote:
> Florian Erfurth wrote: >> Hi, >> I want to sort the result of ldap_search. Unfortunatelly ldap_sort() is >> still not documented, so I don't have Idea how to use it. :( >> >> http://php.net/ldap_sort/ >> >> Could anyone of you help me? My code look as follow: >> $ds = ldap_connect("LDAP://domain.tld"); >> $r = >> ldap_bind($ds, >> "CN=searchfoo,OU=Guests,OU=Benutzergruppen,DC=doma in,DC=tld","longpassword"); >> $sr = @ldap_search($ds,"OU=Benutzergruppen, DC=domain, DC=tld", >> "Company=" . $strCompany); $sr = ldap_sort($ds, $sr, 'givenname'); >> >> ldap_sort($ds, $sr, 'givenname'); >> $info = ldap_get_entries($ds, $sr); >> >> ldap_close($ds); >> <<< >> >> I get following error: >> Warning: ldap_sort() expects parameter 2 to be resource, boolean given >> in /usr/local/www/data-dist/test/telefonliste/index.php on line 9 >> >> Warning: ldap_get_entries(): supplied argument is not a valid ldap result >> resource in /usr/local/www/data-dist/test/telefonliste/index.php on line >> 10 > > $sr = @ldap_search($ds,"OU=Benutzergruppen, DC=domain, DC=tld", > "Company=" . $strCompany); > > Here you supress the error by using @. > I might very well return false or something, because the ldap_search was > wrong. As I'm new in PHP I didn't know about @. Now I removed it. > Stop surpressing it, and you'll get more possibly usefull information. > > $sr = ldap_sort($ds, $sr, 'givenname'); Now I know what was wrong! First: I accidentally wrote ldap_sort twice! *bang-on-head* Second: ldap_sort() returns boolean value, which tells us if it was success. Because of that ldap_get_entries() doesn't get the result of ldap but boolean-value and thus causes error. So I have change the following line $sr = ldap_sort($ds, $sr, 'givenname'); into ldap_sort($ds, $sr, 'givenname'); Now it works! :) Thank you! Floh |