[SPIP] ~v3.2.4-->v3.2.5
[lhc/web/www.git] / www / ecrire / inc / session.php
index 3f806c0..a759650 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2017                                                *
+ *  Copyright (c) 2001-2019                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -178,8 +178,10 @@ function ajouter_session($auteur) {
        if (!isset($auteur['date_session'])) {
                $auteur['date_session'] = time();
        }
-       if (isset($auteur['prefs']) and is_string($auteur['prefs'])) {
-               $auteur['prefs'] = unserialize($auteur['prefs']);
+       if (isset($auteur['prefs'])
+               and is_string($auteur['prefs'])
+         and $prefs = @unserialize($auteur['prefs'])) {
+               $auteur['prefs'] = $prefs;
        }
 
        $fichier_session = "";
@@ -212,7 +214,7 @@ function ajouter_session($auteur) {
                include_spip('inc/autoriser');
        }
        if (autoriser('ecrire','','',$auteur) and _DUREE_COOKIE_ADMIN) {
-               spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKIE_ADMIN, $duree));
+               spip_setcookie('spip_admin', '@' . ($auteur['email'] ?: $auteur['login']), time() + max(_DUREE_COOKIE_ADMIN, $duree));
        } // sinon le supprimer ...
        else {
                spip_setcookie('spip_admin', '', 1);
@@ -622,7 +624,7 @@ function ecrire_fichier_session($fichier, $auteur) {
        // enregistrer les autres donnees du visiteur
        $texte = "<" . "?php\n";
        foreach ($auteur as $var => $val) {
-               $texte .= '$GLOBALS[\'visiteur_session\'][\'' . $var . '\'] = '
+               $texte .= '$GLOBALS[\'visiteur_session\'][' . var_export($var, true) . '] = '
                        . var_export($val, true) . ";\n";
        }
        $texte .= "?" . ">\n";