+ Antworten
Ergebnis 1 bis 8 von 8

Thema: PHP-Error bei LDAP Script

  1. #1
    Neu an Board
    Registriert seit
    02.11.2007
    Beiträge
    73
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard PHP-Error bei LDAP Script

    Hallo zusammen,
    ich habe ein PHP-Script geschrieben um aus unserem Active Directory Daten auszulesen. Das Script funktioniert auch soweit aber in der Apache log-Datei bekomme ich immer folgende Fehler angezeigt:
    Code:
    [Mon Dec 05 11:45:01 2011] [error] [client IPADRESSE] PHP Notice:  Use of undefined constant count - assumed 'count' in /var/www/joomla/php_scripte/Userliste.php on line 47, referer: http://<<PFAD>>/Userliste.php
    [Mon Dec 05 11:45:01 2011] [error] [client IPADRESSE] PHP Notice:  Use of undefined constant sn - assumed 'sn' in <<PFAD>>/Userliste.php on line 48, referer: <<PFAD>>/Userliste.php
    [Mon Dec 05 11:45:01 2011] [error] [client IPADRESSE] PHP Notice:  Undefined index: sn in <<PFAD>>/Userliste.php on line 48, referer: <<PFAD>>/Userliste.php
    [Mon Dec 05 11:45:01 2011] [error] [client IPADRESSE] PHP Notice:  Use of undefined constant givenname - assumed 'givenname' in <<PFAD>>/Userliste.php on line 49, referer: <<PFAD>>/Userliste.php
    ....

    Was habe ich falsch gemacht?
    Hier mein PHP-Code:
    PHP-Code:
    <form method="post" action="Userliste.php">
    <label for="suchbegriff">Name: </label><input name="suchbegriff" type="text" size="30" maxlength="30">
    <input type="submit" value=" Suchen ">
    </form>
    <?php
    $basedn
    ="***";
    $server="***";

    ldap_set_option($connectidLDAP_OPT_REFERRALS0);
    ldap_set_option($connectidLDAP_OPT_PROTOCOL_VERSION3);

    $username="***";
    $passwort="***";

    $ldap_port="***";



    $suchbegriff_cn="*".$_POST['suchbegriff'];    

    if (
    $suchbegriff_cn=="*")

        
    $filter "(&(objectClass=user)(objectCategory=person)(cn=*))";
    }else
    {
        
    $filter "(&(objectClass=user)(objectCategory=person)(cn=$suchbegriff_cn*))";
    }


    $connectid= @ldap_connect($server) or die("Fehler connectid");
    $binding = @ldap_bind($connectid,$username,$passwort) or die("Fehler binding");
    $search = @ldap_search($connectid,$basedn,$filter) or die("Fehler search");
    $result ldap_get_entries($connectid,$search) or die("Fehler result");
    $y=0;
    $number_returned ldap_count_entries($connectid,$search);
    echo 
    "Es wurden "$number_returned." User selektiert\n\n";
    echo 
    "<table><caption>Mitarbeiterverzeichniss</caption>";
    echo 
    "<thead><th>Name</th><th>Vorname</th><th>Email</th><th>Telefonnr</th></thead>";
    for (
    $i=0$i<=$result[count]; $i++) {
        
    $user =$result[$i][sn];
        
    $vorname =$result[$i][givenname];     
        
    $mail =$result[$i][mail]; 
        
    $phone =$result[$i][telephonenumber]; 
        
    $com =$result[$i][company];
        
    $arbeitsplatz $result[$i][physicaldeliveryofficename];

            for (
    $s 0$s count($user); $s++) 
            { 
            
                if(!
    is_null($user[$s]) OR !is_null($mail[$s]) OR !is_null($phone[$s]))  //Zeigt nur Datensätze mit Inhalt an
                
    {
                
    $y=$y+1//Variable für Farbwechsel
                    
    if($y%2){
                    echo 
    "<tr class=odd><td>";
                    }else{
                    echo 
    "<tr><td>";
                    }
                        if (
    is_null($user[$s])) 
                        {    
                            echo 
    "-";
                        }
                        else
                        {
                            echo 
    $user[$s];
                        }
                    echo 
    "</td>";
                    echo 
    "<td>";
                        if (
    is_null($vorname[$s])) 
                        {    
                            echo 
    "-";
                        }
                        else
                        {
                            echo 
    $vorname[$s];
                        }
                    echo 
    "</td>";
                    echo 
    "<td>";
                        if (
    is_null($mail[$s])) 
                        {
                            echo 
    "-";
                        }
                        else
                        {
                            echo 
    $mail[$s];
                        }
                    echo 
    "</td>";
                    echo 
    "<td>";
                        if (
    is_null($phone[$s])) 
                        {
                            echo 
    "-";
                        }else
                        {
                            echo 
    $phone[$s]; 
                        }
                    echo 
    "</td>";
                    echo 
    "</td></tr>";
                }
            }
    }            
    echo 
    "</table>"
    ?>
    </body>
    </html>

  2. #2
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen
    Geändert von bembelimen (06.12.2011 um 10:35 Uhr)

  3. #3
    Neu an Board
    Registriert seit
    02.11.2007
    Beiträge
    73
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Weiß nur leider nicht warum er mir diese Meldung anzeigt. Ich dachte zuerst der Fehler wäre das Variablen vor der Schleife noch nicht existieren. Aber ich habe das Script um

    if(!isset($Variable)){
    $Variable =0;
    }
    erweitert, aber leider kommt die Meldung immer noch.

  4. #4
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Du verwendest $result[count], was nicht wirklich klappen kann. Ich vermute, du willst die Elemente in $result zählen, das geht so: count($result)
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  5. #5
    Hat hier eine Zweitwohnung
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    32
    Beiträge
    1.237
    Bedankte sich
    115
    Erhielt 471 Danksagungen
    in 368 Beiträgen

    Standard

    + count in for = evil

  6. Erhielt Danksagungen von:


  7. #6
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Stimmt auch wieder. Also zuerst eine Variable deklarieren und als count($result) definieren und im for dann mit dieser Variable abgleichen.
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  8. #7
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    Zitat Zitat von Spelvin Beitrag anzeigen
    Weiß nur leider nicht warum er mir diese Meldung anzeigt.
    Ehh? Du hast schon auf meine Links geklickt und dich schlau gemacht, was die Fehler aussagen? Dann sollte es doch ein leichtes sein die Fehler anhand der Zeilennummer in der Fehlermeldung zu finden und auszumerzen.

    Zur Qualität des Codes möchte ich nur jemanden zitieren, der was ganz nettes darüber gesagt hat:

    mir graust es ja wenn ich lese das jemand ein verzeichnis innerhalb joomla erstellt das php_scripte heisst
    Sprich, wirf den Code weg (don't love your code!), lies und arbeite dich ein in die Joomla! Komponenten/Modul/Pluginprogrammierung und bau dir das sauber auf.

  9. #8
    Neu an Board
    Registriert seit
    02.11.2007
    Beiträge
    73
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    danke für den Hinweis mit count in der Schleife, ist wirklich nicht das wahre. Habe es jetzt vor der Schleife in eine Variable geschrieben.
    Natürlich ist es die saubere Lösung eine Komponente oder ein Modul zu schreiben. Aber der Aufwand wäre für viel zu hoch für den Nutzen.

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein