$texte"; $texte .= ''; echo minipres(_T('spip:icone_deconnecter'),$texte,'',true); return false; } /** * Generer un jeton de logout personnel et ephemere * @param array $session * @param null|string $alea * @return string */ function generer_jeton_logout($session,$alea=null){ if (is_null($alea)){ if (!isset($GLOBALS['meta']['alea_ephemere'])){ include_spip('base/abstract_sql'); $GLOBALS['meta']['alea_ephemere'] = sql_getfetsel('valeur', 'spip_meta', "nom='alea_ephemere'"); } $alea = $GLOBALS['meta']['alea_ephemere']; } $jeton = md5($session['date_session'] .$session['id_auteur'] .$session['statut'] .$alea ); return $jeton; } /** * Verifier que le jeton de logout est bon * il faut verifier avec alea_ephemere_ancien si pas bon avec alea_ephemere * pour gerer le cas de la rotation d'alea * @param string $jeton * @param array $session * @return bool */ function verifier_jeton_logout($jeton,$session){ if (generer_jeton_logout($session)===$jeton) return true; if (!isset($GLOBALS['meta']['alea_ephemere_ancien'])){ include_spip('base/abstract_sql'); $GLOBALS['meta']['alea_ephemere_ancien'] = sql_getfetsel('valeur', 'spip_meta', "nom='alea_ephemere_ancien'"); } if (generer_jeton_logout($session,$GLOBALS['meta']['alea_ephemere_ancien'])===$jeton) return true; return false; } ?>