Zwei Arten von Sessions
Wir unterscheiden grundsätzlich zwei Arten von Session:
'user'
oder
'ses'
Wobei "user" dem eingeloggten User zugeordnet wird, und "ses" einfach der laufenden "anonymen" Session.
Notation:
$GLOBALS['TSFE']->fe_user->setKey('Art der Session','Schluessel','Daten');
if ($GLOBALS["TSFE"]->loginUser){
$myData = $GLOBALS["TSFE"]->fe_user->getKey("user","myData");
} else {
$myData = $GLOBALS["TSFE"]->fe_user->getKey("ses","myData");
}
Checken ob der User eingeloggt ist oder nicht
$GLOBALS['TSFE']->fe_user->setKey('ses', 'Bestellung', $daten);
$GLOBALS["TSFE"]->storeSessionData();
Beispiel einer "ses" Session mit Schlüssel "Bestellung"
$GLOBALS['TSFE']->fe_user->getKey('ses','Bestellung');
oder
$GLOBALS['TSFE']->fe_user->getKey('user','Bestellung');
Auslesen der Sessiondaten
$GLOBALS['TSFE']->fe_user->removeSessionData();
Session löschen
$GLOBALS['TSFE']->fe_user->setKey('ses', 'Bestellung', NULL);
Einzelnen Session Schlüssel leeren
$rentbooks=array();
$rentbooks=$GLOBALS['TSFE']->fe_user->getKey('ses','rentb');
$neuwert=$this->piVars['rent'];
$wert_jetzt=array();
$wert_jetzt=$GLOBALS['TSFE']->fe_user->getKey('ses','rentb');
if(count($wert_jetzt)>0){
// ist wert schon vorhanden?
if (false !== ($key = array_search($neuwert,$wert_jetzt)))
{
//unset($wert_jetzt[$key]);
}else{
array_push($wert_jetzt, $neuwert);
}
}else{
$wert_jetzt=array();
//$wert_jetzt=$GLOBALS['TSFE']->fe_user->getKey('ses','checkfields');
array_push($wert_jetzt, $neuwert);
}
$GLOBALS['TSFE']->fe_user->setKey('ses','rentb',$wert_jetzt);
$GLOBALS['TSFE']->storeSessionData();
if(t3lib_div::_GP('kill')){
$wert_jetzt=array();
$GLOBALS['TSFE']->fe_user->setKey('ses','rentb',$wert_jetzt);
$GLOBALS['TSFE']->storeSessionData();
}
$rentbooks=$GLOBALS['TSFE']->fe_user->getKey('ses','rentb');
echo "<pre>";
print_r($rentbooks);
echo "</pre>";
Hier noch ein Beispiel wie man mit Sessions in TYPO3 umgehen kann: