Problem mit ldap_search Befehl

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit ldap_search Befehl

    Hi,

    komme hier absolut nicht mehr weiter. Hoffe ihr könnt mir helfen.

    Also auf der PHP Builder Homepage habe ich mir bereits die Funktion angeschaut nebst Beispiel. Jedoch bekomme ich das für mich nicht hin.

    Hier mein Problem CODE:


    PHP-Code:
    $dn 'DomainName=12345.intern.XYZ.de, ou=domains, o=mycompany'//hier nur mal als Beispiel. 
    $attr 'maillocaladdress';

    $ds ldap_connect("192.168.0.1");
    $r ldap_bind($ds);
    if(
    $r == 1)
    {
         
    $sr ldap_search($ds,$dn"(objectclass=*)" ,$attr);
         
    $info ldap_get_entries($ds$sr);
         echo 
    $info["count"]." found records<p>";
    }
    else
    {
         echo 
    "no connection";
    }
    ldap_close($ds); 
    Wenn ich das Script verwende bekomme ich immer ein Fehlermeldung angezeigt, das die Funktion ldap_search nicht richtig eingesetzt worden ist. (Mal grob übersetzt)

    Wenn ich einen entsprechenden Befehl auf der Konsole des Mailservers ausführe, bekomme ich ein vernünftiges Ergebnis angezeigt.
    Kann mir jemand erklären, warum ich bei dem PHP Script nichts angezeigt bekomme, bzw. warum immer eine Fehlermeldung auf dem Screen erscheint?

  • #2
    ldap_search() erwartet als 4. Parameter ein Array, also versuchs mal mit
    $attr = array('maillocaladdress');

    Kommentar


    • #3
      hi onemorenerd,

      vielen Dank für die Info. Daran hat es tatsächlich gelegen.

      Habe anscheinden schon zu lange vor dem Code gehangen und habe einfach nix mehr gepeilt. Vielen Dank für die schnelle Antwort.

      Krusty

      Kommentar


      • #4
        verarbeiten der LDAP Ausgabe

        Nachdem ich nun endlich die Daten aus dem ldap ausgelesen habe, habe ich ein neues Problem.

        Vorab ein Hinweis. Jeder User auf dem ldap hat mehrere Emailadressen. Pro User können das unterschiedlich viele sein.

        Nach der Suche im ldap habe ich, wenn ich das richtig interpretiert habe ein mehrdimensionales Array. Wie kann ich es jetzt am geschicktesten anstellen, alle email adressen in aus den verschiedenen Arrays auszulesen und in ein einfaches Array zu speichern?

        Als Test hatte ich folgendes in den Code eingefügt:

        PHP-Code:
        foreach ($info as $key => $value)
        {
             echo 
        "Key: $key; Wert: ".$value["maillocaladdress"][0]."<br>";

        Die Angabe [0] bewirkt das ich jeweils die erste Zeile des Arrays ausgegeben bekomme. Wenn ich [1] eingebe, bekomme ich die zweite Zeile, usw.
        Kann ich zuvor die Zeilen zählen und dann mit einer for Schleife arbeiten, oder wie bekomme ich es hin, das ich alle Emailadressen aus den verschiedenen Arrays auslesen kann.

        Hat jemand eine Idee. Bin für jeden Ansatz dankbar.
        Gruß

        Kommentar


        • #5
          Meinst du so?
          PHP-Code:
          foreach ($info as $value) {
               foreach (
          $value["maillocaladdress"] as $mail) {
                  
          $alle[] = $mail;
              }

          Kommentar


          • #6


            Das sieht schon sehr gut aus. Leider bekomme ich folgende Fehlermeldungen. Denke das liegt daran, dass in den ersten beiden Arrays kein maillocaladdress enthalten ist.

            Code:
            [B]Warning:[/B] Cannot use a scalar value as an array in /srv/www/htdocs/test/search.php on line 46
            [B]Warning:[/B] Invalid argument supplied for foreach() in /srv/www/htdocs/test/search.php on line 46
            [B]Warning:[/B] Invalid argument supplied for foreach() in /srv/www/htdocs/test/search.php on line 46
            [B]Warning:[/B] Invalid argument supplied for foreach() in /srv/www/htdocs/test/search.php on line 46
            Zeile 46 ist:

            PHP-Code:
            foreach ($value["maillocaladdress"] as $mail

            Kommentar


            • #7
              Dann umgib das innere foreach eben mit if(isset()).
              OffTopic:
              Wieso schreibst du einen LDAP-Client in PHP, wenn du solche Grundlagen nicht beherrschst?

              Kommentar


              • #8
                Muss das für einen Kunden machen. Habe aber zuvor noch nicht mit PHP gearbeitet.

                Danke für die Hilfe. Hoffe das ich jetzt alleine weiter komme.

                Kannst du mir nen Tutorial empfehlen, was ich mir mal für PHP Grundlagen anschauen könnte, damit ich in Zukunft nicht schon wieder so blöde Fragen stelle.

                Kommentar


                • #9
                  http://ffm.junetz.de/members/reeg/DSP/
                  http://www.schattenbaum.net/php/
                  http://tut.php-q.net/
                  und immer wieder http://php.net/manual

                  Kommentar

                  Lädt...
                  X