You are not logged in.

  • Login

1

Saturday, June 23rd 2007, 12:19pm

LDAP Search

Moin Mädels

Kennt sich irgendwer ein wenig mit PHP und Ldap aus und kann mir sagen warum ich immer diesen ... Fehler bekomme:

Warning: ldap_search() [function.ldap-search]: Search: Operations error in ...

Versteh echt nicht woran es hängt.

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
echo "<h3>LDAP query Test</h3>";
echo "Verbindung ...";
$ds = ldap_connect("ldap://xxx.xxx.xxx.xxx:389");
 
    echo "Ergebnis der Verbindung: ".$ds."<p>";
 
if ($ds) {
    echo "Bindung ...";
 
    $bind = ldap_bind($ds, "CN=ldap user, OU=benutzer, DC=xxxxxxxxxxxxx, DC=xx", "xxxxxxxx");
 
    $dn = "DC=xxxxxxxxxxxxx, DC=xx";
    $filter = "(sAMAccountname=m.mustermann)";
 
    $sr = ldap_search($ds, $dn, $filter);
 
    ldap_close($ds);
 
} else {
    echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>";
}


Gruss

2

Saturday, June 23rd 2007, 2:01pm

Hi,
weißt du ob beim falschen binden eine Fehlermeldung käme? ich würde den Rückgabetyp nochmal überprüfen. Strings mit Leerzeichen sind ("ldap user") sind mir nie geheuer.

Ansonsten sehe ich keinen Fehler, falls die Felder alle richtig benannt sind.

//EDIT: bei php.net werden auch Leerzeichen verwendet...

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
    //This code cannot be executed on the same server as AD is installed on!!!
 
    //Connect
    $ad = ldap_connect("ad server");
 
    //Set some variables
    ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
 
    //Bind to the ldap directory
    $bd = ldap_bind($ad,"user@domain.com","password") or die("Couldn't bind to AD!");
 
    //Search the directory
    $result = ldap_search($ad, "OU=orginizational unit,DC=domain,DC=com", "(CN=*)");
 
    //Create result set
    $entries = ldap_get_entries($ad, $result);
 
    //Sort and print
    echo "User count: " . $entries["count"] . "<br /><br /><b>Users:</b><br />";
 
    for ($i=0; $i < $entries["count"]; $i++)
    {
        echo $entries[$i]["displayname"][0]."<br />";
    }
 
    //never forget to unbind!
    ldap_unbind($ad);
?>

3

Monday, June 25th 2007, 8:32am

Moin

Der Benutzername und alles weitere ist korrekt. Hab rausgefunden, dass das Problem nur auftritt, wenn ich keine OU bei ldap_search angebe. Da leider bei uns die Benutzer verschiedenen Standorten zugeteilt sind, ist das ganze natürlich etwas unpraktisch, wenn ich anstatt einer Abfrage ans LDAP gleich fünf (für jeden Standort eine) machen muss.
Tja leider hab ich noch keine andere Lösung gefunden.

Gruss

Similar threads

Social bookmarks