Mise en route du suivi.
[aidenligne_francais_universite.git] / ecrire / install / etape_4.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined("_ECRIRE_INC_VERSION")) return; #securite
14
15 include_spip('inc/headers');
16
17 // http://doc.spip.org/@inc_install_4
18 function install_etape_4_dist()
19 {
20 global $adresse_db, $choix_db, $login_db, $pass_db, $spip_lang_right, $spip_version, $table_new, $chmod;
21
22 echo install_debut_html('AUTO', ' onLoad="document.getElementById(\'suivant\').focus();return false;"');
23
24 echo info_etape(_T('info_creation_tables'));
25
26 $link = mysql_connect("$adresse_db", "$login_db", "$pass_db");
27
28 echo "<"."!-- $link ";
29
30 if ($choix_db == "new_spip") {
31 $sel_db = $table_new;
32 mysql_query("CREATE DATABASE `$sel_db`");
33 }
34 else {
35 $sel_db = $choix_db;
36 }
37 echo "$sel_db ";
38
39 mysql_select_db($sel_db);
40 spip_query("SELECT COUNT(*) FROM spip_meta");
41 $nouvelle = spip_sql_errno();
42 creer_base();
43 include_spip('base/upgrade');
44 maj_base();
45
46 // Tester $mysql_rappel_nom_base
47 $GLOBALS['mysql_rappel_nom_base'] = true;
48 $GLOBALS['spip_mysql_db'] = $sel_db;
49 $ok_rappel_nom = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')");
50 if ($ok_rappel_nom) {
51 echo " (ok rappel nom base `$sel_db`.spip_meta) ";
52 $ligne_rappel = '';
53 spip_query("DELETE FROM spip_meta WHERE nom='mysql_rappel_nom_base'");
54 } else {
55 echo " (erreur rappel nom base `$sel_db`.spip_meta $nouvelle) ";
56 $GLOBALS['mysql_rappel_nom_base'] = false;
57 $ligne_rappel = "\$GLOBALS['mysql_rappel_nom_base'] = false; ".
58 "/* echec du test sur `$sel_db`.spip_meta lors de l'installation. */\n";
59 }
60
61 if ($nouvelle) {
62 spip_query("INSERT INTO spip_meta (nom, valeur) VALUES ('nouvelle_install', 'oui')");
63 $result_ok = !spip_sql_errno();
64 } else {
65 // en cas de reinstall sur mise a jour mal passee
66 spip_query("DELETE FROM spip_meta WHERE nom='debut_restauration'");
67 $result = spip_query("SELECT COUNT(*) FROM spip_articles");
68 $result_ok = (spip_num_rows($result) > 0);
69 }
70 echo "($result_ok) -->";
71
72 if($chmod) {
73 $conn = "<"."?php\n";
74 $conn .= "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n";
75 $conn .= "define('_SPIP_CHMOD', ".$chmod.");\n";
76 $conn .= "?".">";
77 if (!ecrire_fichier(_FILE_CHMOD_INS . _FILE_TMP . '.php',
78 $conn))
79 redirige_par_entete(generer_url_ecrire('install'));
80 }
81
82 if ($result_ok) {
83 if (preg_match(',(.*):(.*),', $adresse_db, $r))
84 list(,$adresse_db, $port) = $r;
85 else
86 $port = '';
87 $conn = "<"."?php\n";
88 $conn .= "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n";
89 $conn .= "\$GLOBALS['spip_connect_version'] = 0.4;\n";
90 $conn .= $ligne_rappel;
91 $conn .= "spip_connect_db("
92 . "'$adresse_db','$port','$login_db','" . addcslashes($pass_db, "'\\") . "','$sel_db'"
93 . ");\n";
94 $conn .= "?".">";
95
96 if (!ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . '.php',
97 $conn))
98 redirige_par_entete(generer_url_ecrire('install'));
99
100 echo "<p><b>"._T('info_base_installee')."</b></p><p>\n"._T('info_etape_suivante_1');
101
102 echo generer_url_post_ecrire('install');
103 echo "<input type='hidden' name='etape' value='5' />";
104
105 echo bouton_suivant();
106
107 echo "</form>";
108 }
109 else if ($result_ok) {
110 echo _T('alerte_maj_impossible', array('version' => $spip_version));
111 }
112 else {
113 echo "<b>"._T('avis_operation_echec')."</b> "._T('texte_operation_echec');
114 }
115
116 echo install_fin_html();
117 }
118
119 ?>