Hi liebe Leut,
ich hab ein seltsamen Fehler (s. Fehlermeldung, ganz unten) bei einer Weiterleitung aus einem UnterKontroller "AuthController"auf meine Seite.
(Siehe Code AuthController, letzter If-Zweig)
AuthController
durch den Wert true, leite ich meinen FrontController an, den MuenuController zu laden, der wiederum das Template für meine Hauptseite läd. Aber nur wenn die SESSION-Variable is_logged gesetzt wurde.
Was ich bereits mit var_dump($_SESSION['is_logged']) festellen konnte, ist das nach der Weiterleitung, die SESSION verloren gegangen ist.
Aber wieso?
Die statische Methode checkUser() und die login-Methode, in der AuthModel-Klasse
Fehlerausgabe:
ich hab ein seltsamen Fehler (s. Fehlermeldung, ganz unten) bei einer Weiterleitung aus einem UnterKontroller "AuthController"auf meine Seite.
(Siehe Code AuthController, letzter If-Zweig)
AuthController
PHP:
<?php
class AuthController
{
public function run(HttpRequest $req, HttpResponse $res)
{
$model = new AuthModel();
$view = new PSMView();
$view->setTemplate('LoginTempl');
print $view->loadTemplate();
if($req->getParameter('login') && !empty($req->getParameter('bn')) && !empty($req->getParameter('db'))){
try{
$model->login('localhost',$req->getParameter('bn'),$req->getParameter('pw'),$req->getParameter('db'));
}
catch(Exception $e){
$res->write( $e->getMessage());
}
}
if(AuthModel::checkUser() === true){
header("Location: http://localhost/test/test.php?authFin=true");
exit;
}
}
}
?>
Was ich bereits mit var_dump($_SESSION['is_logged']) festellen konnte, ist das nach der Weiterleitung, die SESSION verloren gegangen ist.
Aber wieso?
Die statische Methode checkUser() und die login-Methode, in der AuthModel-Klasse
PHP:
...
public function login($host, $bn, $pw, $db)
{
$resDB = $this->mysqli = new \mysqli($host, $bn, $pw, 'k&k-psm-'.$db);
if($resDB && !isset($_SESSION['is_logged'])){
$_SESSION['is_logged'] = true;
$_SESSION['bn'] = $bn;
return $resDB;
}
else if($resDB) return true;
else if($this->mysqli->connect_errno){
throw new \Exception('Verbindung zum DB-Server fehlgeschlagen! ');
}
}
...
public static function checkUser(){
if(isset($_SESSION['is_logged']) && $_SESSION['is_logged'] === true)
return true;
else return false;
}
...
Fehlerausgabe:
PHP:
Notice: Undefined variable: _SESSION in C:\...\MenuController.php on line 22
NULL
Zuletzt bearbeitet: