Arbeiten mit Sessions

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');

Checken ob der User eingeloggt ist oder nicht
if ($GLOBALS["TSFE"]->loginUser){
        $myData = $GLOBALS["TSFE"]->fe_user->getKey("user","myData");
} else {
        $myData = $GLOBALS["TSFE"]->fe_user->getKey("ses","myData");
}
Beispiel einer "ses" Session mit Schlüssel "Bestellung"
$GLOBALS['TSFE']->fe_user->setKey('ses', 'Bestellung', $daten); 
$GLOBALS["TSFE"]->storeSessionData();
Auslesen der Sessiondaten
$GLOBALS['TSFE']->fe_user->getKey('ses','Bestellung');
oder
$GLOBALS['TSFE']->fe_user->getKey('user','Bestellung');
Session löschen
$GLOBALS['TSFE']->fe_user->removeSessionData();
Einzelnen Session Schlüssel leeren
$GLOBALS['TSFE']->fe_user->setKey('ses', 'Bestellung', NULL);
Hier noch ein Beispiel wie man mit Sessions in TYPO3 umgehen kann:
$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>"; 
War das Ihnen eine Hilfe? ein "LIKE" wäre ein tolles "Dankeschön"