• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

PHP Klasse mit Session Registrierung

  • Ersteller Applefan88
  • 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? :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!");
?>
 

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.
:)