diff --git a/ecrire/inc.php3 b/ecrire/inc.php3 index 9e30e29b2a204dae095a8577809981716a456b5d..c5d1ee88fd0f5b8fddaaea28ec341ceac2e28e74 100644 --- a/ecrire/inc.php3 +++ b/ecrire/inc.php3 @@ -50,7 +50,7 @@ if ($prefs_mod) { } if ($set_ecran) { // on pose un cookie long car ce reglage depend plus du navigateur que de l'utilisateur - setcookie('spip_ecran', $set_ecran, time() + 365 * 24 * 3600); + spip_setcookie('spip_ecran', $set_ecran, time() + 365 * 24 * 3600); $spip_ecran = $set_ecran; } if (!$spip_ecran) $spip_ecran = "etroit"; @@ -244,7 +244,7 @@ function tester_rubrique_vide($id_rubrique) { // Recuperation du cookie // -$cookie_admin = $HTTP_COOKIE_VARS["spip_admin"]; +$cookie_admin = $HTTP_COOKIE_VARS['spip_admin']; diff --git a/ecrire/inc_acces.php3 b/ecrire/inc_acces.php3 index a399b592de8bf9d6ba6f11758a0c9b0299ca6568..2e81646d3510084b98b0fd34a86e0e7221aac9fd 100644 --- a/ecrire/inc_acces.php3 +++ b/ecrire/inc_acces.php3 @@ -31,6 +31,9 @@ function creer_pass_aleatoire($longueur = 8, $sel = "") { $pass .= $x; $s = substr($s, 2); } + $pass = ereg_replace("[./]", "a", $pass); + $pass = ereg_replace("[I1l]", "L", $pass); + $pass = ereg_replace("[0O]", "o", $pass); return $pass; } diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 79fa791c4354541d2ec57f23a986b142c9c732f0..87ea40b8294f6cc4cb4d22acbdef6a25454bd0a9 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -14,6 +14,10 @@ define("_ECRIRE_INC_VERSION", "1"); // (a modifier pour avoir plusieurs sites SPIP dans une seule base) $table_prefix = "spip"; +// Prefixe des cookies +// (a modifier pour installer des sites SPIP dans des sous-repertoires) +$cookie_prefix = "spip"; + // faut-il loger les infos de debug dans data/spip.log ? $debug = false; @@ -175,6 +179,42 @@ function feed_post_files($table) { feed_post_files('HTTP_POST_FILES'); +// +// Appliquer le prefixe cookie +// +function spip_setcookie ($name='', $value='', $expire='', $path='', $domain='', $secure='') { + $name = ereg_replace ('^spip', $GLOBALS['cookie_prefix'], $name); + + if ($secure) + @setcookie ($name, $value, $expire, $path, $domain, $secure); + else if ($domain) + @setcookie ($name, $value, $expire, $path, $domain); + else if ($path) + @setcookie ($name, $value, $expire, $path); + else if ($expire) + @setcookie ($name, $value, $expire); + else + @setcookie ($name, $value); +} +if ($cookie_prefix <> 'spip') { + reset ($HTTP_COOKIE_VARS); + while (list($name,$value) = each($HTTP_COOKIE_VARS)) { + if (ereg('^spip', $name)) { + unset($HTTP_COOKIE_VARS[$name]); + unset($$name); + } + } + reset ($HTTP_COOKIE_VARS); + while (list($name,$value) = each($HTTP_COOKIE_VARS)) { + if (ereg('^'.$cookie_prefix, $name)) { + $spipname = ereg_replace ('^'.$cookie_prefix, 'spip', $name); + $HTTP_COOKIE_VARS[$spipname] = $value; + $$spipname = $value; + } + } +} + + // // Infos sur l'hebergeur // diff --git a/inc-formulaires.php3 b/inc-formulaires.php3 index c8d5e1a22d4b686da2b0a12515c8afe43b791933..f36eabcb0df795f225756e79de14acb31eef53f4 100644 --- a/inc-formulaires.php3 +++ b/inc-formulaires.php3 @@ -319,8 +319,8 @@ function formulaire_inscription($type) { // envoyer identifiants par mail if ($continue) { - include_local("inc-forum.php3"); - $pass = generer_pass_forum($mail_inscription); + include_ecrire("inc_acces.php3"); + $pass = creer_pass_aleatoire(8,$mail_inscription); $login = test_login($mail_inscription); $mdpass = md5($pass); $htpass = generer_htpass($pass); diff --git a/inc-forum.php3 b/inc-forum.php3 index 77c6cdc9befd68243919a664e36229a1ca8959fd..112fcb288b3642e6e8785f1c74c132b5cea21849 100644 --- a/inc-forum.php3 +++ b/inc-forum.php3 @@ -33,30 +33,6 @@ function get_forums_publics($id_article=0) { return $forums_publics; } -function generer_pass_forum($email = '') { - $passw = creer_pass_aleatoire(9, $email); - $passw = ereg_replace("[./]", "a", $passw); - $passw = ereg_replace("[I1l]", "L", $passw); - $passw = ereg_replace("[0O]", "o", $passw); - return $passw; -} - -function generer_hash_forum($email, $id_auteur) { - return calculer_action_auteur("forum public $email", $id_auteur); -} - -function poser_cookie_forum($email, $id_auteur, $duree = 30) { - $hash = generer_hash_forum($email, $id_auteur); - setcookie("spip_forum_email", $email, time() + (3600 * 24 * $duree)); - setcookie("spip_forum_hash", $hash, time() + (3600 * 24 * $duree)); -} - -function enlever_cookie_forum() { - setcookie("spip_forum_email", "", time() - 3600 * 24); - setcookie("spip_forum_hash", "", time() - 3600 * 24); -} - - function afficher_petits_logos_mots($id_mot) { $racine = "IMG/moton$id_mot"; if (file_exists("$racine.gif")) { diff --git a/inc-login.php3 b/inc-login.php3 index 031b8763f18b660dc9e176f7e2f978245f6ad289..01e217640199bef8631afde5bdfb0079adf40095 100644 --- a/inc-login.php3 +++ b/inc-login.php3 @@ -121,7 +121,7 @@ function login($cible = '', $prive = 'prive', $message_login='') { } else if (!$flag_autres_sources) { $erreur = "L'identifiant « $login » est inconnu."; $login = ''; - @setcookie("spip_admin", "", time() - 3600); + @spip_setcookie("spip_admin", "", time() - 3600); } } diff --git a/spip_cookie.php3 b/spip_cookie.php3 index 8573fedd97cf2b9fd9af6b5535ae42880cfb87c6..341de5ef38898af3177855d1d736f56625d2c572 100644 --- a/spip_cookie.php3 +++ b/spip_cookie.php3 @@ -28,7 +28,7 @@ if ($change_session == 'oui') { $auteur_session['ip_change'] = false; $cookie = creer_cookie_session($auteur_session); supprimer_session($spip_session); - setcookie('spip_session', $cookie); + spip_setcookie('spip_session', $cookie); } @header('Content-Type: image/gif'); @header('Expires: 0'); @@ -56,7 +56,7 @@ if ($logout) { spip_query("UPDATE spip_auteurs SET en_ligne = DATE_SUB(NOW(),INTERVAL 6 MINUTE) WHERE id_auteur = ".$auteur_session['id_auteur']); if ($spip_session) { zap_sessions($auteur_session['id_auteur'], true); - setcookie('spip_session', $spip_session, time() - 3600 * 24); + spip_setcookie('spip_session', $spip_session, time() - 3600 * 24); } if ($PHP_AUTH_USER) { include_local ("inc-login.php3"); @@ -77,7 +77,7 @@ if ($logout) { // puis de passer a spip_login qui diagnostiquera l'echec de cookie // le cas echeant. if ($test_echec_cookie == 'oui') { - setcookie('spip_session', 'test_echec_cookie'); + spip_setcookie('spip_session', 'test_echec_cookie'); $link = new Link("spip_login.php3?var_echec_cookie=oui"); $link->addVar("var_url", $cible->getUrl()); @header("Location: ".$link->getUrl()); @@ -156,17 +156,17 @@ if ($essai_login == "oui") { // cookie d'admin ? if ($cookie_admin == "non") { - setcookie('spip_admin', $spip_admin, time() - 3600 * 24); + spip_setcookie('spip_admin', $spip_admin, time() - 3600 * 24); $cible->delVar('var_login'); $cible->addVar('var_login', '-1'); } else if ($cookie_admin AND $spip_admin != $cookie_admin) { - setcookie('spip_admin', $cookie_admin, time() + 3600 * 24 * 14); + spip_setcookie('spip_admin', $cookie_admin, time() + 3600 * 24 * 14); } // cookie de session ? if ($cookie_session) - setcookie('spip_session', $cookie_session); + spip_setcookie('spip_session', $cookie_session); // Redirection // Sous Apache 1.x, les cookies avec une redirection fonctionnent