diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 2f2649446c6dff4d26589d8148263a9561c22efe..41e52e89bc8fd310b2b19cedd285bdb21fd49243 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -1211,20 +1211,23 @@ function verifier_visiteur() { // dans un formulaire sans login (ex: #FORMULAIRE_FORUM) // Attention on separe bien session_nom et nom, pour eviter // les melanges entre donnees SQL et variables plus aleatoires - if ( - _request('session_nom') !== null - OR _request('session_email') !== null - ) { + $variables_session = array('nom', 'email'); + while (list(,$var) = each($variables_session)) { + if (_request('session_'.$var) !== null) { + $init = true; + break; + } + } + if (isset($init)) { @spip_initialisation(); $session = charger_fonction('session', 'inc'); + $session(); include_spip('inc/texte'); - $GLOBALS['auteur_session'] = array ( - 'session_nom' => safehtml(_request('session_nom')), - 'session_email' => safehtml(_request('session_email')), - 'id_auteur' => 0, - 'statut' => '', - 'auth' => '' - ); + foreach($variables_session as $var) + if (($a = _request('session_'.$var)) !== null) + $GLOBALS['auteur_session']['session_'.$var] = safehtml($a); + if (!isset($GLOBALS['auteur_session']['id_auteur'])) + $GLOBALS['auteur_session']['id_auteur'] = 0; ajouter_session($GLOBALS['auteur_session']); return 0; } @@ -1284,7 +1287,7 @@ function spip_session($force = false) { if ($force OR !isset($session)) { $s = pipeline('definir_session', $GLOBALS['auteur_session'] - ? $GLOBALS['auteur_session']['id_auteur'] + ? serialize($GLOBALS['auteur_session']) . '_' . @$_COOKIE['spip_session'] : '' );