• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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.
:)