ldap bind ... 2 skripte 1 funktioniert

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

  • ldap bind ... 2 skripte 1 funktioniert

    Hallo,

    bin gerade am verzweifeln. Habe hier 2 skripte, die nahezu das gleiche tun und zwar sich per ldap server zu autentifizieren.

    eins, in dem die verbindung in einer funktion geschieht und diese nachher aufgerufen wird. funktioniert wunderbar.

    dann das gleiche nur als methode in einer klasse. zack ... bekomme IMMER den Fehler "Unable to bind to server: Can't contact LDAP server in ...", obwohl das der gleiche code ist.

    aufruf hier :
    Code:
        $a = new ldap_auth_class($_POST['user], $_POST['pass']);
        echo "Erg = " . $a->ldap_check();
    aufruf des 1. skriptes:

    Code:
    if (ldap_check($_POST[user], $_POST[pass])) {
      echo "ACCESS GRANTED\n";
    } else {
      echo "ACCESS DENIED\n";
    falls es nicht genug infos sind, poste ich gerne auch noch die beiden skripte
    , aber das wollte ich erstmal lassen, da die etwas länger sind.

    gruß

    le_cheffe

  • #2
    als erstes sehe ich da post-daten sind die überprüft? inhalt?

    Code von den methoden der klasse wäre mal schön.

    Kommentar


    • #3
      Was macht der Konstruktor der Klasse ldap_auth_class, was die Funktion ldap_check nicht macht?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Danke erstmal für die Antworten und hier die Klasse ...

        PHP-Code:
        class ldap_auth_class {
            
            private 
        $ldaphost "stimmtsicher";   //--- name of ldap server ---//
            
        private $ldapport "389";                 //--- port of ldap server ---//
            
        protected $ldap_user;             //--- name to be used to auth with ldap server ---//
            
        protected $ldap_pass;             //--- password to be used to auth with ldap server ---// 
            
            
            //--- Constructor ---//
            
        function ldap_auth_class($user$pass) {
                
        $this->ldap_user $user;
                
        $this->ldap_pass $pass;
            }
            
            
        //--- Destructor ---//
            
        function _ldap_auth_class() {
                
        //mach was
            
        }

            
            function 
        ldap_check() {
                
        $l_con ldap_connect($ldaphost);
                if (!
        $l_con) {
                    
        //--- connection error => function returns 0 ---//
                    
        return 0;
                } else {
                    
        $set_res ldap_set_option($l_conLDAP_OPT_PROTOCOL_VERSION3);
                    if (!
        $set_res)
                    {
                        
        //--- error changing to version 3 => return 0 ---//
                        
        return 0;
                    }
        //            echo "l_con = " . $l_con . " <---";
                    
        $anon_bind ldap_bind($l_con);
                    if (!
        $anon_bind) {
                        
        //--- no anonymous bind possible => return 0 ---//
                        
        return 0;
                    }
                    
        $search_res ldap_search($l_con"ou=stimmt, o=stimmtauch""sn=" $this->ldap_user);
                    if (!
        search_res) {
                        
        //--- error searching ldap server for userid => return 0 ---//
                        
        return 0;
                    }
                    if (
        ldap_count_entries($l_con$search_res) != 1) {
                        
        //--- found more than one user => return 0 ---//
                        
        return 0;
                    }
                    
        $entry_id ldap_first_entry($l_con$search_res);
                    if (!
        entry_id)
                    {
                        
        //--- error getting user data (search result) => return 0 ---//
                        
        return 0;
                    }
                    
        $user_dn ldap_get_dn($l_con$entry_id);
                    if (!
        $user_dn)
                    {
                        
        //--- error getting user dn from server => return 0 ---//
                        
        return 0;
                    }
                    
        $l_bind ldap_bind($l_con$user_dn$this->ldap_pass);
                    if (!
        $l_bind)
                    {
                        
        //--- wrong password => return 0 ---//
                        
        return 0;
                    } else {
                        
        //--- authentification correct => return 1 ---//
                        
        return 1;
                    }
                }    
           } 
        Falls da irgendwelche haarsträubende Fehler drin sind, bitte nicht böse sein, da ich gerade erst mit OOP anfange. Ebenso bitte evtl. fehlende Klammern übersehen ... daran hängt es sicher nicht.

        NACHTRAG : Der Fehler "Unable to bind to server: Can't contact LDAP server in" erscheint in der Zeile "$anon_bind = ldap_bind($l_con);"


        Gruß

        le_cheffe
        Zuletzt geändert von mrhappiness; 10.10.2005, 14:44.

        Kommentar


        • #5
          Das ist die nicht funktionierende Methode in der Klasse?

          Wo ist der Unterschied zur funktionierenden Funktion?

          Wenn du ihn nicht findest, poste die Funktion auch noch


          P.S.
          Ich habe deinen Beitrag editiert und statt [code] die [php] Tags verwendet, mach du das ab jetzt bitte auch
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Hi !

            Zu guter letzt (wie schreibt man das eigentlich richtig ???) habe ich den Fehler gefunden. Die Tücken stecken im Detail.

            Anstatt
            PHP-Code:
            $l_con ldap_connect($this->ldap_host); 
            habe ich

            PHP-Code:
            $l_con ldap_connect($ldap_host); 
            benutzt und das mocht er scheinbar nicht.

            Gruß

            le_cheffe

            Kommentar


            • #7
              da war ich mit meinem $_post ja nah dran. zumindest mit mit der annahme, dass deine daten falsch sind.

              Kommentar


              • #8
                OffTopic:
                Ansichtssache

                Schreib' doch beim nächsten mal einfach nur "Du machst was falsch oder es liegt an was anderem", das stimmt mindestens genauso oft und ist auch nicht präziser
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X