• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

PHP Klasse mit Session Registrierung

  • Ersteller Ersteller Applefan88
  • Erstellt am Erstellt am

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? :-!

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!");
?>
 
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.
:-)