1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

PHP Klasse mit Session Registrierung

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Applefan88, 23.01.07.

  1. Applefan88

    Applefan88 Gast

    Hallo,
    ich habe ein großes Problem und zwar habe ich eine PHP Klasse für einen Radius Server bekommen und möchte dort nun sobald die Daten korrekt sind eine Session mit dem Benutzernamen anlegen.
    Die Session soll $_SESSION['valid_radius_user'] heissen. Nun wird meine Session aber nicht registriert, kann mir einer helfen? :eek:

    Ach ja, die Klassen an sich ist voll funktionsfähig, der User wird als richtig erkannt.
    Und an sich auch in den Radius Server eingelogged, nur die verdammte Session wird nicht erstellt.

    Code:
    <?php
    
    function session () {
    session_start();
    $_SESSION['valid_radius_user'] = $radius_user;
    header ("Location: main.php");
    }
    
    
    class CLogin
    {
        var $user = null;
        var $pass = null;
        
        private $handle = null;
        private $secret = 'testing123';
        private $timeout = 5;
        private $port = 1812;
        private $max_tries = 3;
        private $host = 'localhost';
        
        function __construct()
        {
            try
            {
                //handle erstellbar?
                if(!$this->handle = radius_auth_open ()) throw new Exception("can't create handle(".radius_strerror($this->handle).")");
                else
                {
                    //Verbindung kann hergestellt werden?
                    if (!radius_add_server($this->handle, $this->host, $this->port, $this->secret, $this->timeout, $this->max_tries)) throw new Exception("can't connect to radius(".radius_strerror($this->handle).")");
                    else return true;                
                }
                
            }
            catch (Exception $e)
            {
                echo $e->getMessage();
                echo ' in '.$e->getFile().', line: '.$e->getLine().'.';
            }
            return false;
        }
        
        function login($user, $pass)
        {
            try
            {
                //user angegeben
                if(is_null($user)) throw new Exception("Es wurde kein Username eingegeben!");
                else $this->user = $user;
                //pass angegeben
                if(is_null($pass)) throw new Exception("Es wurde kein Passwort eingegeben!");
                else ($this->pass = $pass);
                
                if (radius_create_request($this->handle, RADIUS_ACCESS_REQUEST) != RADIUS_ACCESS_ACCEPT) throw new Exception("can't create request(".radius_strerror($this->handle).")");
                else
                {
                    if (!radius_put_string($this->handle, RADIUS_USER_NAME, $this->user)) throw new Exception("put string failed(".radius_strerror($this->handle).")");
                    else
                    {
                        if (!radius_put_string($this->handle, RADIUS_USER_PASSWORD, $this->pass)) throw new Exception("put string failed(".radius_strerror($this->handle).")");
                        else
                        {
                            if(radius_send_request($this->handle)==RADIUS_ACCESS_ACCEPT) return true;
                        }
                    }
                }
                
            }
            catch (Exception $e)
            {
                echo $e->getMessage();
                echo ' in '.$e->getFile().', line: '.$e->getLine().'.';
            }
            return false;
        }
    }
    
    if($login = new CLogin())
    {
            //Objekt vom Typ CLogin erstellt..werden mir grad schon user&pass geschickt? ja:checken, nein:formular anzeigen
        
            
            if(isset($_POST['user']) && isset($_POST['pass']))
            {
                    if($login->login($_POST['user'], $_POST['pass'])) {
                    
                    session();
                    
                    }
                    else echo "<div style=\"font-color:red\" align=\"center\">
                    Benutzername/Kennwort falsch!<br />Ihre Logindaten sind 
                    leider falsch, bitte probieren Sie es erneut!<br>
                    <a href='index_comm.php'>Zur&uuml;ck</a></div>";
            }
            
        
            
     
    } else die("Es konnte kein CLogin-Objekt erstellt werden!");
    ?>
    
    
    
    
     
  2. Applefan88

    Applefan88 Gast

    Also, ich habe es geschafft.
    Ein Glück. Der Thread kann gelöscht werden.
    Es lag an der Variable $radius_user, mit $_POST['user'] funktioniert es.
    :)
     

Diese Seite empfehlen