Zum Inhalt springen

Sessionhandling mit Typo3

Erstellt am 18. Juli 2007 · 7 Antworten · letzte Antwort am 8. August 2007

Tags: Frage

mariohaehni ·

Hi zusammen

Ich sitze gerade an einer Extension und sollte nun Werte zwischenspeichern, bevor ich Sie später in die DB eintrage. Ich dachte, am besten wäre wohl eine Session geeignet. Was meint ihr? Gibt es evt. bessere Möglichkeiten?

Wenn ich nun mit Session arbeiten möchte, sollte ich wissen, wie ich am einfachstne die ganze Session mit Typo3 handle? Also ich weiss, dass es innerhalb der $GLOBALS["TSFE"] einige DInge gibt, welche für die Session gedacht ist. Leider finde ich nirgends eine genauer Doku dazu. Ich solte eine Session starten, Werte reinspeichern und einzelne Werte wieder löschen können.

Hat da jemand einen Hinweis für mich?

Besten Dank und Grüsse
Mario

steffenk ·

also schreiben mit

$GLOBALS['TSFE']->fe_user->setKey("ses","key",$value)

und auslesen mit

$GLOBALS["TSFE"]->fe_user->getKey("user","key")

dokumentiert ist das in der class.tslib_feuserauth.php

mariohaehni ·

Tiptop so funktionierts!

Nun habe ich noch eine weitere Frage: Gerne würde ich nun aber mehrer Werte in dieser Session speichern, diese alle Ausgeben und löschen können. Änhlich einem Warenkorb.

Wie kann ich nun mit Typo3-Sessions dies realisieren? Ziel wäre doch, ein Array in der Session zu haben.

Wie geben ich alle Werte dieser Session aus? Am besten Value und Key, damit ich diese auch löschen könnte.

Ich hoffe ihr versteht in etwa mein Problem!

Danke und Gruss Mario

mariohaehni ·

Doch, ich mag Arrays!! Ich weiss nur nicht wie ich mit Typo3 Sessions und Arrays kombiniere! Ich möchte alle Werte eines Arrays aus der Session auflisten und jeder einzelne Array Eintrag löschen können.

Gruss Mario

Stoneage ·

schreiben:

$GLOBALS['TSFE']->fe_user->setKey("ses","key",serialize($value));

lesen:

unserialize($GLOBALS["TSFE"]->fe_user->getKey("user","key"));
mariohaehni ·

So, ich bin nun soweit, dass ich in meiner Session ein Array habe, welche sin etwa so aussieht:

[6] => eintrag 1
[7] => eintrag 2
[8] => eintrag 3

Den Key, also hier 6,7,8, habe ich selber generiert. Nun möchte ich aber alle drei Eintrage ausgeben. Mit dem Befehle $GLOBALS["TSFE"]->fe_user->getKey("user","key") kann ich jedoch immer nur ein Eintrag ausgeben. Nur diesen, bei welchem der Key-Wert übereinstimmt.

Wie kann ich nun mit Typo3 eine Schleife erzeugen, welche alle Einträge ausgibt? Mit serialize und unserializ habe ich dies ebenfalls nicht hinbekommen.

Danke für einen Tip!
Gruss Mario

larryc ·

Hello!

Ganz einfach...speichere nicht die einzelnen Keys mit setKey ab, sondern sammle die ganzen Keys in einem Array, und speichere dieses dann ab!

$var=array("ho","ho","ho","says","santa");

Einlesen:
$GLOBALS['TSFE']->fe_user->setKey('ses','meinesessionvariablen', $var);

Ausgeben:
$var=$GLOBALS['TSFE']->fe_user->getKey('ses','meinesessionvariablen');

Hoffe geholfen zu haben

Lg Chris