Problem mit $_SESSION in Klasse

ezias

Erfahrenes Mitglied
Hallo ich habe mir eine Login Klasse geschrieben und lege in einer Funktion mittels $_SESSION['xyz'] = $variablenname; meine Sessions fest.

Jetzt habe ich das Problem wenn ich in meiner index.php
PHP:
<?php
error_reporting (E_ALL);
session_start ();
include ("login.klasse.php");

$login = new login ();
//....
echo $_SESSION['xyz'];
?>
die Klasse aufrufe und mein Loginformular ausfülle sind meine $_SESSION variablen nur solange gültig bzw gehen sofort nachdem php die klasse abgearbeitet hat verloren.

Ich habe mir mittels "header ("refresh: 5;url=" . $this -> referer);" eine Verzögerung eingebaut. Solange die Seite läd wird am Ende meiner index.php $_SESSION['xyz'] ausgegeben sobald die Seite aber fertiggeladen hat bzw die Klasse eben abgearbeitet ist, ist auch die $_SESSION['xyz'] Variable verloren und ich erhaltet stattdessen eine Fehlermeldung das der Index xyz nicht definiert ist.
 
Muss die session_start(); Anweisung nicht immer die erste Anweisung in einer Datei sein ?
In deinem Code ist das zumindest nicht gegeben.


VG
 
Erstmal danke für die Antwort hat aber leider keine Änderung gebracht.
Ich denke mal es liegt daran das $_SESSION['xyz'] in einer function () inerhalb einer Klasse definiert wird. Wenn ich z.B. ausserhalb der Klasse $_SESSION['sonstwiewas'] definiere dann kann ich darauf zugreifen. Bzw if (isset ($_SESSION['sonstwiewas'])) gibt true zurück.
 
$_SESSION gehört meines Wissen zu den Superglobalen Variablen in PHP , das sollte also nicht der Grund sein das es innerhalb einer anderen Funktion aufgerufen wird , da sie überall gültig ist.

Ich denke mal das Du das $_SESSION Array in der Login Klasse füllst , somit kann es da zu anderen Problemen kommen das es eben nicht dazu kommt. auf das Session Array solltest auf jeden Fall innerhalb der Login Klasse zugreifen können.
 
Erstmal danke für deine Antwort und deine Hilfe.
Innerhalb der Klasse kann ich auch zugreifen bzw solange die Klasse noch abgearbeitet wird ist das Sessionarray auch vorhanden.
Ich habe mir mittels "header ("refresh: 5;url=" . $this -> referer);" eine Verzögerung eingebaut. Solange die Seite läd wird am Ende meiner index.php $_SESSION['xyz'] ausgegeben sobald die Seite aber fertiggeladen hat bzw die Klasse eben abgearbeitet ist, ist auch die $_SESSION['xyz'] Variable verloren und ich erhaltet stattdessen eine Fehlermeldung das der Index xyz nicht definiert ist.

Ich weiß nicht ob ich gesagt hab das ich mittels $_SESSION['user_id'] überprüfen möchte ob der User angemeldet ist oder nicht. $_SESSION['user_id'] wird eben in der Login Klasse definiert daher würde ich eben auch wenn die Klasse abgearbeitet ist auf $_SESSION['user_id'] zugreifen können um eben zu überprüfen ob der jeweilige User angemeldet ist oder nicht.
 
Hab den Fehler gefunden lag daran das ich oder der Firefox selber (man weis es nicht ;)) Cookies von meinem localhost aus Blockiert hat somit wurden die session Daten zwar gesetzt aber php konnte mich nie der session_id zuordnen. Hat aber den vorteil das ich jetzt meine eigene Session Klasse versuche zu schreiben. Danke nochmal an alle die mir geholfen haben.
 
Zurück