Hilfe - Suche - Mitglieder - Kalender
Vollansicht: PHP $_SESSION im Frontend
Forum Sefrengo.org > Allgemeine Foren > Entwicklung
Airmotion
Hallo,

Wie kann ich im Frontend auf $_SESSION zugreifen? Ich suche jetzt seit 2 Stunden und finde nix :-(

vielen Dank und grüße
mvsxyz
Hallo Airmotion,

erstmal musst du den Frontend Session Support in den Projekteinstellungen eingestellt haben.

Möchtest du eine Variable in der Session speichern, so kannst du $sess->register('variablenname'); benutzen. In Zukunft steht diese Variabe bereit. Zum löschen der Variable nutzt du $sess->unregister('variablenname');. Und zum Abfragen $sess->is_registered('variablenname');.

Dabei ist es wichtig, dass du nur den Variablennamen und nicht die Variable selbst übergibst!

Hier ein kleines Beispiel, dass du in ein Modul-Output kopieren kannst.

QUELLTEXT
if($sess->is_registered('var') === false) {
  $var= 'Hello World!';
  $sess->register('var');
  echo "register var: ".$var;
} else {
  echo "already registered: ".$var;
}


Beim ersten Aufruf wird die Variable in der Session gespeichert. Bei jedem weiteren Aufruf wird der Wert aus der Session genutzt. Das funktioniert sowohl im Backend, als auch im Frontend (eingloggt und nicht eingeloggt).
Airmotion
Also ok aber Problem ist das ich ein CAPTCHA hab das was in $_SESSION['last_captcha'] speichert und ich will innerhalb das Frontends drauf zu also ich hab jetzt mal ganz oben in der Index.php die session gestartet nun ist die $_SESSION var nicht mehr NULL aber das Array ist halt leer...

grüße
bjoern
Sefrengo nutzt sein eigenes Sessionmanagement. Wenn Du mit $_SESSION arbeitest kriegst Du da früher oder später Probleme, gerade die URLgenerierung kann dann problematisch werden.
Du solltest nicht an die Coredateien gehen, sondern sowas z.B. im Layout über $sess lösen. Dann geht es auch.
Airmotion
Ok gut,

Was muss ich den alles includen resp. Instanzieren wenn ich dieses Session-mangement extern nutzen will?

danke und viele grüße
bjoern
Ich gehe einfach mal davon aus, dass Du Dich im projek01 Verzeichnis befindest. Wenn Du woanders bist, solltest Du den Includepath noch ein wenig anpassen.

QUELLTEXT
//header - optional
//header('Content-type: text/html; charset=UTF-8');

//Sefrengo aus externer Anwendung initialisieren
include_once '../backend/inc/inc.init_external.php';

//Dein Zeug
// ....
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.