Hagen: AD Problem - niemand konnte helfen

einen wunderschönen guten morgen,
bin hilfloser Praktikant und soll irgendwie das AD auslesen(am besten mit PHP) hier mal der Quellcode: - mein problem folgt

<?php
$basedn = "ou=xyz,dc=abcde-ag,dc=de";
$server = "xyz.abcde-ag.de";
$username = "";
$password = "";
$connectid = ldap_connect($server);

echo "<br>connect id:".$connectid."<br>";
$binding = ldap_bind($connectid,$username,$password) or die("Fehler");

if ($binding==1)
{
echo "Verbindung erfolgreich hergestellt.<br>";
}
$filter="uid=*";
$search = ldap_search($connectid,$basedn,$filter);
echo "Ergebnis der suche:".$search."<br>";
$result = ldap_get_entries($connectid,$search);
echo "Das Resultat:";
print_r($result);
?>

ich bekomme diese ausgabe ohne jegliche fehlermldg.:
connect id:Resource id #1
Verbindung erfolgreich hergestellt.
Ergebnis der suche:Resource id #2
Das Resultat:Array ( [count] => 0 )

nur wollte ich leider alle angemeldeten user und ihre logon/logoff Zeiten haben und nicht NICHTS!!!!(ich weiß der filter muss dafür noch geändert werden, aber ich brauch erstmal überhaupt ne sinnvolle ausgabe).
Wär extrem cool wenn ihr mir helfen könnt----

MFG
Hagen<<<hilfloser Praktikant

  1. hi, keine Ahnung, was das AD ist, aber versuchs doch erstmal mit einem konkreten Begriff im Filter, von dem Du weisst, das er in der Datenbank enthalten sein MUSS.

    hilfreich?

    1. Öhm das Active Directory?
      Das "verzeichnis", in welchem die ganzen lustigen Userinformationen einer Domäne stehen.
      MFG

      1. Dann ist es ein Test, und sie wollen sehn, wann Dus merkst ?!

        1. *GGG* ne wohl eher net.. noch ne konstruktive Idee??
          MFG

          1. Tach.

            *GGG* ne wohl eher net.. noch ne konstruktive Idee??

            Habe das hier gefunden - http://www.developer.com/lang/php/article.php/3100951 keine Ahnung ob es Dir was bringt.

            1. ne ich glaube mein problem liegt in der $basedn...
              habe:
              eine ou benutzer und darunter wurde vom admin noch eine ou=abc angelegt,
              die dc´s: dc=uvwxyz-ag, dc=de: so das ich letztlich das habe:
              ou=Benutzer,ou=abc,dc=uvwxyz-ag,dc=de

              und irgendwie krieg ich die konnektion zum ldap server aber nicht die zu den daten der user. Hat noch jem. ne idee wo der fehler stecken könnte.. bin blutiger anfänger....

              MFG

  2. echo $begrüßung;

    $binding = ldap_bind($connectid,$username,$password) or die("Fehler");

    Wenn ldap_bind() nicht erfolgreich war, stirbt dein Script. So ein Gnadenschuss ist zwar einfach realisiert, jedoch recht benutzerunfreundlich.

    if ($binding==1)

    An diese Stelle gelangst du sowieso nur, wenn ldap_bind() erfolgreich war. Diese Abfrage ist also zusammen mit obigem Gnadenschuss reichlich sinnfrei. Außerdem liefert ldap_bind() einen booleschen Wert zurück. Boolsche Werte kann man in Bedingungen direkt einsetzen, ohne sie nochmals mit irgendwas zu vergleichen, um auch nur wieder einen boolschen Wert als Ergebnis zu bekommen.

    {
    echo "Verbindung erfolgreich hergestellt.<br>";
    }

    Diese Ausgabe ist zwar interessant für dich, aber für den Anwender reichlich uninteressant. Man erwartet einfach, das das Ding die Arbeit tut, für die es vorgesehen ist. Als Bestätigung gibt es ja dann auch ein Ergebnis, ansonsten sowieso eine Fehlermeldung.

    Besser wäre:

    if (ldap_bind(...)) {
      alles, was nach einem erfolgreichen ldap_bind passieren soll
    } else {
      Fehlermeldung, mit Vorschlägen, was der Benutzer machen kann, um doch noch an ein Ergebnis zu kommen, oder wie er mitwirken kann, dass der Fehler beseitigt wird (z.B. Admin benachrichtigen).
    }

    $filter="uid=*";

    Versuche mal, den Filterausdruck in runde Klammern zu setzen.
    (Möglicherweise hilft auch noch das Setzen der Protokoll-Version, siehe ldap_set_option().)

    echo "$verabschiedung $name";

  3. Moin Hagen,

    hab da eine Klasse gefunden, die das mit dem LDAP ebenfalls händeln soll: https://sourceforge.net/projects/adldap/
    Dort gibts auch ein Forum mit interessanten Beiträgen - allerdings in englisch. Einfach mal reinschauen und eben schaun, obs was bringt ...

    Gruß,
    Kerstin