--- /dev/null
+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l'internet *
+ * *
+ * Copyright (c) 2001-2011 *
+ * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
+ * *
+ * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
+ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
+\***************************************************************************/
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+include_spip('inc/headers');
+
+function install_etape_3b_dist()
+{
+ $login = _request('login');
+ $email = _request('email');
+ $nom = _request('nom');
+ $pass = _request('pass');
+ $pass_verif = _request('pass_verif');
+
+ $server_db = defined('_INSTALL_SERVER_DB')
+ ? _INSTALL_SERVER_DB
+ : _request('server_db');
+
+ if($login) {
+ $echec = ($pass!=$pass_verif) ?
+ _T('info_passes_identiques')
+ : ((strlen($pass)<6) ?
+ _T('info_passe_trop_court')
+ : ((strlen($login)<3) ?
+ _T('info_login_trop_court')
+ : ''));
+ if ($echec) {
+ echo minipres(
+ 'AUTO',
+ "<h2>$echec</h2>\n".
+ info_progression_etape(3,'etape_','install/', true).
+ "<p class='resultat echec'>"._T('avis_connexion_echec_2')."</p>"
+ );
+ exit;
+ }
+ }
+
+ if (@file_exists(_FILE_CHMOD_TMP))
+ include(_FILE_CHMOD_TMP);
+ else
+ redirige_url_ecrire('install');
+
+ if (!@file_exists(_FILE_CONNECT_TMP))
+ redirige_url_ecrire('install');
+
+ # maintenant on connait le vrai charset du site s'il est deja configure
+ # sinon par defaut lire_meta reglera _DEFAULT_CHARSET
+ # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
+
+ lire_metas();
+ if ($login) {
+ include_spip('inc/charsets');
+
+ $nom = (importer_charset($nom, _DEFAULT_CHARSET));
+ $login = (importer_charset($login, _DEFAULT_CHARSET));
+ $email = (importer_charset($email, _DEFAULT_CHARSET));
+ # pour le passwd, bizarrement il faut le convertir comme s'il avait
+ # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js
+ $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1');
+ include_spip('auth/sha256.inc');
+ include_spip('inc/acces');
+ $htpass = generer_htpass($pass);
+ $alea_actuel = creer_uniqid();
+ $alea_futur = creer_uniqid();
+ $shapass = _nano_sha256($alea_actuel.$pass);
+ // prelablement, creer le champ webmestre si il n'existe pas (install neuve
+ // sur une vieille base
+ $t = sql_showtable("spip_auteurs", true);
+ if (!isset($t['field']['webmestre']))
+ @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3) DEFAULT 'non' NOT NULL");
+
+ $id_auteur = sql_getfetsel("id_auteur", "spip_auteurs", "login=" . sql_quote($login));
+ if ($id_auteur !== NULL) {
+ sql_updateq('spip_auteurs', array("nom"=> $nom, 'email'=> $email, 'login'=>$login, 'pass'=>$shapass, 'alea_actuel'=>$alea_actuel, 'alea_futur'=> $alea_futur, 'htpass'=>$htpass, 'statut'=>'0minirezo'), "id_auteur=$id_auteur");
+ }
+ else {
+ $id_auteur = sql_insertq('spip_auteurs', array(
+ 'nom' => $nom,
+ 'email' => $email,
+ 'login' => $login,
+ 'pass' => $shapass,
+ 'htpass' => $htpass,
+ 'alea_actuel' => $alea_actuel,
+ 'alea_futur' => $alea_futur,
+ 'statut' =>'0minirezo'));
+ }
+ // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
+ @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur");
+
+ // inserer email comme email webmaster principal
+ // (sauf s'il est vide: cas de la re-installation)
+ if ($email)
+ ecrire_meta('email_webmaster', $email);
+
+ // Connecter directement celui qui vient de (re)donner son login
+ // mais sans cookie d'admin ni connexion longue
+ include_spip('inc/auth');
+ if (!$auteur = auth_identifier_login($login, $pass)
+ OR !auth_loger($auteur, true))
+ spip_log("login automatique impossible $auth_spip $session" . count($row));
+ }
+
+ // installer les metas
+ $config = charger_fonction('config', 'inc');
+ $config();
+
+ // activer les plugins
+ // leur installation ne peut pas se faire sur le meme hit, il faudra donc
+ // poursuivre au hit suivant
+ include_spip('inc/plugin');
+ actualise_plugins_actifs();
+
+
+ include_spip('inc/distant');
+ redirige_par_entete(parametre_url(self(),'etape','4','&'));
+
+}
+
+?>