Hallo ich verzweifel gerade am starten einer Session.
In jede Skript das eine eigenständige Seite darstellt wird folgendes Skript das die Reihenfolge vorgibt eingebunden. Die entsprechende sessions.php an oberster Stelle.
PHP-Code:
include_once 'session.php';
include_once DOCUM_ROOT."/php/functions.php";
include_once DOCUM_ROOT.'/php/classes/MysqlClass.php';
include_once DOCUM_ROOT."/php/db.php";
include_once DOCUM_ROOT.'/php/classes/sqlLight.php';
include_once DOCUM_ROOT.'/php/classes/Security.php';
include_once DOCUM_ROOT.'/php/classes/Head.php';
include_once DOCUM_ROOT.'/php/classes/Login.php';
include_once DOCUM_ROOT.'/php/classes/Comment.php';
include_once DOCUM_ROOT.'/php/login_check.php';
Die session.php sieht so aus:
PHP-Code:
<?php
// include_once 'all_include.php';
// $session = new MySessionHandler();
session_start();
if(empty($_SESSION['user'])){
session_destroy();
} else {
echo $_SESSION['user'];
}
?>
Eingeloggt wird sich in die Session so, die Ausgabe und Umleitung des else trifft nicht ein:
PHP-Code:
<?php
include_once 'all_include.php';
if(isset($_POST['usr']) and isset($_POST['pwd'])){
$usr=$_POST['usr'];
$pwd=$_POST['pwd'];
$sqlQuerry=sprintf("select name, pass from user where name='%s' and pass='%s'", $usr,$pwd);
//$result= mysqli_query($db,$sqlQuerry);
$result=$db->query($sqlQuerry);
if($result->num_rows>0 ){
$_SESSION['user']=$usr;
// echo "hallo ".$usr;
}
else{
header('Location: ./index.php?abgewiesen=true');
echo "nicht angemeldet <br>". $db->error;
}
}
?>
Jede dazustellende Seite wird so konstruiert:
PHP-Code:
<?php
$title = "";
$discription = "";
$urlSlashes = explode ( "/", __FILE__ );
$letzesElement = count ( $urlSlashes );
$fileName = $urlSlashes [$letzesElement - 1];
include_once 'pathes.php';
include_once './php/all_include.php';
$head = new Head ();
$head->title = $title;
$head->discription = $discription;
$head->printHead ();
?>
Es wird zuerst die pathes.php eingebunden die lediglich die Systempfade in Variablen speichert und keine Ausgabe über Echo macht. Dann kommt die all_include.php die als allererste Datei die Session php einbindet und erst dann wird mit der Klasse Head die erste Ausgabe für den html Kopf generiert. Aufgrund der sessions.php müsste bei gestarteter Session zuerst der Benutzername ausgegeben werden, wird's aber leider nicht.
Was läuft falsch?