[TYPO3-german] fe_user mehrfach login verhindern

Klaus Biedermann klaus.biedermann at gmx.de
Fri Jun 25 13:23:27 CEST 2010


Florian Zimmermann schrieb:
> Hallo  Klaus,
> mir fällt nur ein abfragen ob der User schon eingeloggt ist und ggf. die 
> anderen Sessions löschen.
> public function killUserSessions(){
>     $user = get_object_vars($GLOBALS["TSFE"] -> fe_user);
>     $uid = $user['user']['uid'];
>     $ses_id = $GLOBALS["TSFE"]->fe_user->id;
>     if (!empty($uid)) {
>         $res 
> =$GLOBALS['TYPO3_DB']->exec_SELECTquery('ses_id','fe_sessions','ses_userid 
> = '.$uid);
>         while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
>             $rows[] = $row;
>         }
>         if (sizeof($rows) > 1){
>             $query = tx_pp_fc_db::buildQueryArray('ses_id',,);
> $res = $GLOBALS['TYPO3_DB']->exec_DELETEquery('fe_sessions','ses_userid 
> = '.$uid.' AND ses_id != '".$ses_id."'');
>     }
>     }
> }
> Bis dann
> 
> Florian
> Am 25.06.2010 00:03, schrieb Klaus Biedermann:
>> Hallo Typo3 Liste,
>>
>> normaler Weise kann sich ein Frontend Benutzer von verschiedenen
>> Rechnern gleichzeitig einloggen.
>> Gibt es einen Weg dies zu verhindern?
>>
>> lg
>>
>> Klaus
> 

Hallo Florian,

vielen Dank für Deine Hilfe.
Es funktioniert soweit. Nur jetzt können sich die Benutzer gegenseitig 
rauswerfen.

Daher habe ich Deine Methode etwas geändert; es wird nach Timestamp 
sortiert und die neueren Sessions gekillt. So bleibt der erste User 
eingeloggt.

############# BEGIN ################

	public function killUserSessions(){
		$user = get_object_vars($GLOBALS["TSFE"] -> fe_user);
		$uid = $user['user']['uid'];
		$ses_id = $GLOBALS["TSFE"]->fe_user->id;
		if (!empty($uid)) {
			$res 
=$GLOBALS['TYPO3_DB']->exec_SELECTquery('ses_id','fe_sessions','ses_userid 
= '.$uid, '', 'ses_tstamp ASC');
			while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
				$rows[] = $row;
			}
			if (sizeof($rows) > 1){
				for($i=1;$i<count($rows);$i++){
					$res = 
$GLOBALS['TYPO3_DB']->exec_DELETEquery('fe_sessions','ses_userid = 
'.$uid.' AND ses_id = "'.$rows[$i]['ses_id'].'"');
				}

			}
		}
	}

############## END #################


More information about the TYPO3-german mailing list