Mailinglisten-Archive |
|Hallo Leute,
Im Prinzip versuche ich einen search mit
BASEDN "||DC=domain,DC=de" und FILTER ||'CN='.$username
zu machen.
Mit meinem LDAP-Browser geht alles.
Mit dem PHP Code geht folgendes:
Das Connect geht.
Das Bind geht.
Der Search wirft die Fehlermeldung:
PHP Warning: ldap_search(): Search: Operations error in
/home/mweber/test.php on line 41
Search: Operations error
||
was mache ich falsch?
schon mal danke für alle eure anregungen...
Liebe Grüsse
Marco Weber
PS: Anbei mein Test-Code... Falls den wen interessiert. :)
// mal versuch mit iso, wenn utf8 nicht geht...
$_LDAP_BASE=iconv("UTF-8", "ISO-8859-1", 'DC=domain,DC=de');
$_LDAP_USER=iconv("UTF-8", "ISO-8859-1", $username.'@domain.de');
$_LDAP_PASSWD=iconv("UTF-8", "ISO-8859-1", $passwd);
$_LDAP_SEARCH=iconv("UTF-8", "ISO-8859-1", 'CN='.$username);
// zuständige dcs für domain.de abfragen
$dcs=dns_get_record("_ldap._tcp.domain.de", DNS_SRV);
// dcs mischen
shuffle($dcs);
// dann abfrage starten
foreach($dcs as $_LDAP_HOST) {
$_LDAP_HOST=$_LDAP_HOST['target'];
// dann die LDAP Variablen setzen
// verbinden
echo "ldaps://".$_LDAP_HOST."/"."\n";
$ds=ldap_connect("ldaps://".$_LDAP_HOST."/");
echo "Connect: ".ldap_error($ds)."\n";
// sind wir verbunden?
if(is_resource($ds)) {
// einloggen erfolgreich?
if(ldap_bind($ds, $_LDAP_USER, $_LDAP_PASSWD)) {
echo "Bind: ".ldap_error($ds)."\n";
// suchen
$sr=ldap_search($ds, $_LDAP_BASE, $_LDAP_SEARCH);
echo "Search: ".ldap_error($ds)."\n";
// suche erfolgreich?
if(is_resource($sr)) {
// einträge abrufen
$info = ldap_get_entries($ds, $sr);
echo "Getentries: ".ldap_error($ds)."\n";
//such ergebnis schliessen
ldap_free_result($sr);
print_r($info);
ldap_close($ds);
break;
}
else {
ldap_close($ds);
continue;
}
}
else {
ldap_close($ds);
continue;
}
}
else {
continue;
}
}
|
php::bar PHP Wiki - Listenarchive