Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] LDAP Abfrage mit ldap_search und ldap_get_entries, wann keine Resultate?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] LDAP Abfrage mit ldap_search und ldap_get_entries, wann keine Resultate?

    Guten Tag

    Ich versuche, eine LDAP Abfrage zu machen. Die soll, wenn sie kein Ergebnis liefert, eine Meldung ausgeben, dass keine Ergebnisse gefunden wurden.

    Die Abfrage funktioniert und gibt mir auch das aus was ich möchte, bei keinem passenden Ergebniss klappt es leider nicht und ich bekomme kein Ergebnis (leere Seite) zurück statt der Ausgabe "leere Variable, hier kommt anderes skript....."

    Hier einen Teil des Skripts:
    PHP-Code:

    $sr
    =ldap_search($ldapconn$dn$filter$justthese);
            
            
            
    //Prüfen ob Variable $sr gefüllt mit Suchresultat
             
    if ($sr=="FALSE"){
             
                echo 
    "leere Variable, hier kommt anderes skript.....";
             
             }
             else {
             
                
    $info ldap_get_entries($ldapconn$sr);
                    
                for (
    $i=0$i<$info["count"]; $i++) {
                    echo 
    $info[$i]["sn"][0];
                        if(
    $info 0){
                            echo 
    "<br/>";} 
                        else { echo 
    "<br/>" ;}
                    echo 
    $info[$i]["description"][0];
                }
            
            } 
    (Ich habe extra nicht alle Variablen hineinkopiert, wie gesagt, da der Rest bei erfolgreicher Abfrage ja funktioniert.)

    Die Frage: Wie muss ich die if Anweisung umschreiben, damit ich ausgegeben bekomme, wenn die Funktion "ldap_search()" kein Resultat liefert? Laut der PHP Seit sollte danach ja "FALSE" ausgegeben werden. Weil wenn es kein Ergebnis liefert sollte danach noch ein weiteres Verzeichnis abgefragt werden...

    oder muss ich die Funktion ldap_get_entries() auswerten?

    Könnt ihr mir weiterhelfen?

    Danke im Voraus!!!!

    Grüsse sTernLii

  • Tropi
    antwortet
    Der Vollständigkeit sei erwähnt, nachdem du offenbar einfach das Ergebnis von var_dump kopiert hast:
    var_dump — Gibt alle Informationen zu einer Variablen aus
    int(0) sind "alle Informationen", sprich Typ (int) und Inhalt, der Inhalt (den du mit ==(=) prüfst) ist 0.

    Einen Kommentar schreiben:


  • sTernLii
    antwortet
    &nochmals danke Habe es sofort geändert

    Einen Kommentar schreiben:


  • jspit
    antwortet
    Da hast du aber Glück gehabt das dies funktioniert. Der Inhalt ist 0, int ist die Information vom var_dump das es sich eben um ein int (integer) handelt.
    PHP-Code:
    if ($info["count"]== 0){ 
    sieht besser aus...

    Einen Kommentar schreiben:


  • sTernLii
    antwortet
    Danke für die Antwort, hat mir wirklich geholfen

    Habe es jetzt so gelöst:

    PHP-Code:
    if ($info["count"]=="int(0)"){     
           
    //Fehlermeldung
    }
    else {
          
    // ....

    Einen Kommentar schreiben:


  • jspit
    antwortet
    Sofern ldap_search() eine resource liefert gilt die Anfrage erstmal als erfolgreich, unabhängig davon ob und wieviele Resultate gefunden wurden.
    PHP-Code:
    if(! $sr) {
      
    //Fehlermeldung
    }
    else {
      
    //.. 
    Dann solltest du dir mal mit var_dump das Array $info ausgeben lassen und dir "count" näher anschauen. Da ich keine Ahnung von LDAP habe, kann ich nur vermuten dort steht 0 drin wenn du keine Resultate bekommst und du kannst dies auswerten.

    Einen Kommentar schreiben:


  • sTernLii
    antwortet
    var_dump($sr) gibt mir folgendes zurück: resource(3) of type (ldap result)
    Dies bei einer Abfrage wo ein Resultat gefunden werden kann sowie auch bei einer wo kein Resultat gefunden werden kann.

    Den Filter habe ich folgendermassen gesetzt
    PHP-Code:
    $filter="(|(telephoneNumber=156456431))"

    Einen Kommentar schreiben:


  • Tropi
    antwortet
    Was bekommst du denn überhaupt zurück? Sprich was sagt var_dump($sr)?

    Einen Kommentar schreiben:


  • sTernLii
    antwortet
    Danke für die Antwort. Wie kann ich für eine Boolean eine if Anweisung machen?
    Mit
    PHP-Code:
    if ($sr==FALSE){....} 
    funktioniert es leider auch nicht. Kannst du mir weiterhelfen?

    Einen Kommentar schreiben:


  • Tropi
    antwortet
    Nein, die Funktion liefert eine Boolean false, nicht so wie du annimmst einen String "FALSE".

    Einen Kommentar schreiben:

Lädt...
X