bug3
[aidenligne_francais_universite.git] / fluxbb / install.php
CommitLineData
c495c100
P
1<?php
2/***********************************************************************
3
4 Copyright (C) 2002-2005 Rickard Andersson (rickard@punbb.org)
5
6 This file is part of PunBB.
7
8 PunBB is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 2 of the License,
11 or (at your option) any later version.
12
13 PunBB is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 MA 02111-1307 USA
22
23************************************************************************/
24
25
26// The FluxBB version this script installs
27$fluxbb_version = '1.2.23';
28$fluxbb_version_fr = '1.2.23';
29
30
31define('PUN_ROOT', './');
32if (file_exists(PUN_ROOT.'config.php'))
33 exit('Le fichier \'config.php\' existe déjà, ce qui signifie très probablement que FluxBB est déjà installé. Vous devriez plutôt <a href="index.php">aller ici</a>.');
34
35
36// Make sure we are running at least PHP 4.1.0
37if (intval(str_replace('.', '', phpversion())) < 410)
38 exit('Vous utilisez la version '.PHP_VERSION.' de PHP. FluxBB nécéssite au minimum PHP 4.1.0 pour fonctionner correctement. Vous devez mettre à jour votre installation de PHP afin de pouvoir continuer l\'installation.');
39
40// Disable error reporting for uninitialized variables
41error_reporting(E_ALL);
42
43// Turn off PHP time limit
44@set_time_limit(0);
45
46
47if (!isset($_POST['form_sent']))
48{
49 // Determine available database extensions
50 $dual_mysql = false;
51 $db_extensions = array();
52 if (function_exists('mysqli_connect'))
53 $db_extensions[] = array('mysqli', 'MySQL amélioré (MySQL Improved)');
54 if (function_exists('mysql_connect'))
55 {
56 $db_extensions[] = array('mysql', 'MySQL Standard');
57
58 if (count($db_extensions) > 1)
59 $dual_mysql = true;
60 }
61 if (function_exists('sqlite_open'))
62 $db_extensions[] = array('sqlite', 'SQLite');
63 if (function_exists('pg_connect'))
64 $db_extensions[] = array('pgsql', 'PostgreSQL');
65
66 if (empty($db_extensions))
67 exit('Cet environnement PHP n\'a le support pour aucune bases de données que FluxBB peut utiliser. Afin d\'installer FluxBB, PHP doit supporter soit MySQL, PostgreSQL ou SQLite.');
68
69?>
70<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
71
72<html>
73<head>
74<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
75<title>Installation de FluxBB</title>
76<link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
77<script type="text/javascript">
78<!--
79function process_form(the_form)
80{
81 var element_names = new Object()
82 element_names["req_db_type"] = "Type de base de données"
83 element_names["req_db_host"] = "Hôte serveur de base de données"
84 element_names["req_db_name"] = "Nom de base de données"
85 element_names["db_prefix"] = "Préfixe tables"
86 element_names["req_username"] = "Nom utilisateur administrateur"
87 element_names["req_password1"] = "Mot de passe administrateur 1"
88 element_names["req_password2"] = "Mot de passe administrateur 2"
89 element_names["req_email"] = "E-mail administrateur"
90 element_names["req_base_url"] = "URL de base"
91
92 if (document.all || document.getElementById)
93 {
94 for (i = 0; i < the_form.length; ++i)
95 {
96 var elem = the_form.elements[i]
97 if (elem.name && elem.name.substring(0, 4) == "req_")
98 {
99 if (elem.type && (elem.type=="text" || elem.type=="textarea" || elem.type=="password" || elem.type=="file") && elem.value=='')
100 {
101 alert("\"" + element_names[elem.name] + "\" est un champ requis pour ce formulaire.")
102 elem.focus()
103 return false
104 }
105 }
106 }
107 }
108
109 return true
110}
111// -->
112</script>
113</head>
114<body onload="document.getElementById('install').req_db_type.focus()">
115
116<div id="puninstall" style="margin: auto 10% auto 10%">
117<div class="pun">
118
119<div class="block">
120 <h2><span>Installation de FluxBB</span></h2>
121 <div class="box">
122 <div class="inbox">
123 <p>Bienvenue sur l'application d'installation de FluxBB ! Vous vous apprêtez à installer FluxBB. Afin d'installer celui-ci vous devez remplir le formulaire ci-dessous. Si vous rencontrez des difficultés avec l'installation, veuillez s'il vous plait vous référer à la documentation.</p>
124 </div>
125 </div>
126</div>
127
128<div class="blockform">
129 <h2><span>Installer FluxBB</span></h2>
130 <div class="box">
131 <form id="install" method="post" action="install.php" onsubmit="this.start.disabled=true;if(process_form(this)){return true;}else{this.start.disabled=false;return false;}">
132 <div><input type="hidden" name="form_sent" value="1" /></div>
133 <div class="inform">
134 <div class="forminfo">
135 <h3>Réglages de la base de données</h3>
136 <p>Afin d'installer votre base de données pour FluxBB, veuillez saisir les informations demandées ci-dessous. Vous devez connaître toutes les informations demandées avant de procéder à l'installation.</p>
137 </div>
138 <fieldset>
139 <legend>Sélectionnez le type de votre base de données</legend>
140 <div class="infldset">
141 <p>FluxBB supporte actuellement MySQL, PostgreSQL et SQLite. Si votre base de données est absente du menu déroulant ci-dessous, cela signifie que cet environnement <acronym title="PHP: Hypertext Preprocessor" lang="en">PHP</acronym> n'a pas le support pour cette base de données particulière. Plus d'information concernant le support des versions particulières de chaque base de données pourra être trouvée dans la <acronym title="Frequently Asked Questions" lang="en">FAQ</acronym>.</p>
142<?php if ($dual_mysql): ?> <p>FluxBB a détecté que votre environnement PHP supporte deux manières différentes de communiquer avec MySQL. Les deux options s'appellent "standard" (MySQL) et "amélioré" (MySQLi ; "i" comme "improved"). Si vous n'êtes pas certain de laquelle utiliser, commencez par essayer "amélioré" et si cela échoue, essayez "standard".</p>
143<?php endif; ?> <label><strong>Type de base de données</strong>
144 <br /><select name="req_db_type">
145<?php
146
147 foreach ($db_extensions as $db_type)
148 echo "\t\t\t\t\t\t\t".'<option value="'.$db_type[0].'">'.$db_type[1].'</option>'."\n";
149
150?>
151 </select>
152 <br /></label>
153 </div>
154 </fieldset>
155 </div>
156 <div class="inform">
157 <fieldset>
158 <legend>Saisissez l'adresse de votre serveur de base de données</legend>
159 <div class="infldset">
160 <p>L'adresse du serveur de base de données (exemples : localhost, db.monhote.com ou 192.168.0.15). Vous pouvez indiquer un numéro de port personnalisé au cas où votre base de donnée ne fonctionne pas sur le port par défaut (exemple : localhost:3580). Pour le support de SQLite, écrivez n'importe quoi ou laissez 'localhost'.</p>
161 <label><strong>Hôte serveur de base de données</strong><br /><input type="text" name="req_db_host" value="localhost" size="50" maxlength="100" /><br /></label>
162 </div>
163 </fieldset>
164 </div>
165 <div class="inform">
166 <fieldset>
167 <legend>Saisissez le nom de votre base de données</legend>
168 <div class="infldset">
169 <p>Le nom de la base de données sur laquelle FluxBB sera installé. La base de données doit exister. Pour SQLite, il s'agit du chemin relatif vers le fichier de base de données. Si ce fichier de base de données SQLite n'existe pas, FluxBB essayera de le créer.</p>
170 <label for="req_db_name"><strong>Nom de la base de données</strong><br /><input id="req_db_name" type="text" name="req_db_name" size="30" maxlength="50" /><br /></label>
171 </div>
172 </fieldset>
173 </div>
174 <div class="inform">
175 <fieldset>
176 <legend>Saisissez votre nom d'utilisateur et votre mot de passe de la base de données</legend>
177 <div class="infldset">
178 <p>Saisissez le nom d'utilisateur et le mot de passe que vous utilisez pour vous connecter à la base de données. Ignorez pour SQLite.</p>
179 <label class="conl">Nom d'utilisateur <acronym title="Base de données">BDD</acronym><br /><input type="text" name="db_username" size="30" maxlength="50" /><br /></label>
180 <label class="conl">Mot de passe <acronym title="Base de données">BDD</acronym><br /><input type="text" name="db_password" size="30" maxlength="50" /><br /></label>
181 <div class="clearer"></div>
182 </div>
183 </fieldset>
184 </div>
185 <div class="inform">
186 <fieldset>
187 <legend>Saisissez le préfixe des tables</legend>
188 <div class="infldset">
189 <p>Si vous le souhaitez vous pouvez indiquer un préfixe de tables. De cette façon vous pouvez utiliser plusieurs installations de FluxBB sur la même base de données. (exemple : pun_).</p>
190 <label>Préfixe tables<br /><input id="db_prefix" type="text" name="db_prefix" size="20" maxlength="30" /><br /></label>
191 </div>
192 </fieldset>
193 </div>
194 <div class="inform">
195 <div class="forminfo">
196 <h3>Réglages d'administration</h3>
197 <p>Veuillez saisir les informations demandées ci-dessous afin de définir un administrateur pour votre installation de FluxBB.</p>
198 </div>
199 <fieldset>
200 <legend>Saisissez le nom d'utilisateur de l'administrateur</legend>
201 <div class="infldset">
202 <p>Le nom d'utilisateur de l'administrateur des forums. Vous pourrez par la suite créer de nouveaux administrateurs ainsi que des modérateurs. Ce nom d'utilisateur peut faire entre 2 et 25 caractères de long.</p>
203 <label><strong>Nom d'utilisateur administrateur</strong><br /><input type="text" name="req_username" size="25" maxlength="25" /><br /></label>
204 </div>
205 </fieldset>
206 </div>
207 <div class="inform">
208 <fieldset>
209 <legend>Saisissez et confirmez le mot de passe administrateur</legend>
210 <div class="infldset">
211 <p>Les mots de passe peuvent faire entre 4 et 16 caractères de long. Les mots de passe sont sensibles à la casse.</p>
212 <label class="conl"><strong>Mot de passe</strong><br /><input id="req_password1" type="text" name="req_password1" size="16" maxlength="16" /><br /></label>
213 <label class="conl"><strong>Confirmez le mot de passe</strong><br /><input type="text" name="req_password2" size="16" maxlength="16" /><br /></label>
214 <div class="clearer"></div>
215 </div>
216 </fieldset>
217 </div>
218 <div class="inform">
219 <fieldset>
220 <legend>Saisissez l'adresse e-mail de l'administrateur</legend>
221 <div class="infldset">
222 <p>L'adresse e-mail de l'administrateur des forums.</p>
223 <label for="req_email"><strong>E-mail administrateur</strong><br /><input id="req_email" type="text" name="req_email" size="50" maxlength="50" /><br /></label>
224 </div>
225 </fieldset>
226 </div>
227 <div class="inform">
228 <fieldset>
229 <legend>Saisissez l'<acronym title="Uniform Resource Locator" lang="en">URL</acronym> de base de votre installation de FluxBB</legend>
230 <div class="infldset">
231 <p>L'<acronym title="Uniform Resource Locator" lang="en">URL</acronym> de base (sans slash à la fin) de vos forums FluxBB (exemple : http://forum.mondomaine.com ou http://monhote.com/~utilisateur). Ceci <strong>doit être correct</strong> ou les administrateurs et modérateurs ne pourront valider aucun des formulaires. Veuillez noter que la valeur pré-réglée ci-dessous est juste une proposition devinée par FluxBB.</p>
232 <label><strong><acronym title="Uniform Resource Locator" lang="en">URL</acronym> de base</strong><br /><input type="text" name="req_base_url" value="http://<?php echo $_SERVER['SERVER_NAME'].str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])) ?>" size="60" maxlength="100" /><br /></label>
233 </div>
234 </fieldset>
235 </div>
236 <p><input type="submit" name="start" value="Lancer l'installation" /></p>
237 </form>
238 </div>
239</div>
240
241</div>
242</div>
243
244</body>
245</html>
246<?php
247
248}
249else
250{
251 //
252 // Strip slashes only if magic_quotes_gpc is on.
253 //
254 function unescape($str)
255 {
256 return (get_magic_quotes_gpc() == 1) ? stripslashes($str) : $str;
257 }
258
259
260 //
261 // Compute a hash of $str.
262 // Uses sha1() if available. If not, SHA1 through mhash() if available. If not, fall back on md5().
263 //
264 function pun_hash($str)
265 {
266 if (function_exists('sha1')) // Only in PHP 4.3.0+
267 return sha1($str);
268 else if (function_exists('mhash')) // Only if Mhash library is loaded
269 return bin2hex(mhash(MHASH_SHA1, $str));
270 else
271 return md5($str);
272 }
273
274
275 //
276 // A temporary replacement for the full error handler found in functions.php.
277 // It's here because a function called error() must be callable in the database abstraction layer.
278 //
279 function error($message, $file = false, $line = false, $db_error = false)
280 {
281 if ($file !== false && $line !== false)
282 echo '<strong style="color: A00000">Une erreur s\'est produite à la ligne '.$line.' dans le fichier '.$file.'.</strong><br /><br />';
283 else
284 echo '<strong style="color: A00000">Une erreur s\'est produite.</strong><br /><br />';
285
286 echo '<strong>FluxBB a rapporté&nbsp;:</strong> '.htmlspecialchars($message).'<br /><br />';
287
288 if ($db_error !== false)
289 echo '<strong>La base de données a rapporté&nbsp;:</strong> '.htmlspecialchars($db_error['error_msg']).(($db_error['error_no']) ? ' (Errno: '.$db_error['error_no'].')' : '');
290
291 exit;
292 }
293
294
295 //
296 // Calls htmlspecialchars with a few options already set
297 //
298 function pun_htmlspecialchars($str)
299 {
300 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
301 }
302
303
304 $db_type = $_POST['req_db_type'];
305 $db_host = trim($_POST['req_db_host']);
306 $db_name = trim($_POST['req_db_name']);
307 $db_username = unescape(trim($_POST['db_username']));
308 $db_password = unescape(trim($_POST['db_password']));
309 $db_prefix = trim($_POST['db_prefix']);
310 $username = unescape(trim($_POST['req_username']));
311 $email = strtolower(trim($_POST['req_email']));
312 $password1 = unescape(trim($_POST['req_password1']));
313 $password2 = unescape(trim($_POST['req_password2']));
314
315
316 // Make sure base_url doesn't end with a slash
317 if (substr($_POST['req_base_url'], -1) == '/')
318 $base_url = substr($_POST['req_base_url'], 0, -1);
319 else
320 $base_url = $_POST['req_base_url'];
321
322
323 // Validate username and passwords
324 if (strlen($username) < 2)
325 error('Le nom d\'utilisateur administrateur doit faire au moins 2 caractères de long. Veuillez retourner en arrière et corriger.');
326 if (strlen($password1) < 4)
327 error('Le mot de passe administrateur doit faire au moins 4 caractères de long. Veuillez retourner en arrière et corriger.');
328 if ($password1 != $password2)
329 error('Les mots de passe administrateur ne correspondent pas. Veuillez retourner en arrière et corriger.');
330 if (!strcasecmp($username, 'invité'))
331 error('Le nom d\'utilisateur \'invité\' est réservé. Veuillez retourner en arrière et corriger.');
332 if (!strcasecmp($username, 'guest'))
333 error('Le nom d\'utilisateur \'guest\' est réservé. Veuillez retourner en arrière et corriger.');
334 if (preg_match('/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/', $username))
335 error('Les noms d\'utilisateur ne peuvent être de la forme d\'une adresse IP. Veuillez retourner en arrière et corriger.');
336 if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username))
337 error('Le nom d\'utilisateur ne peut contenir aucune des balise de formatage (BBCode) que les forums utilisent. Veuillez retourner en arrière et corriger.');
338
339 if (strlen($email) > 50 || !preg_match('/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $email))
340 error('L\'adresse e-mail administrateur que vous avez saisie est incorrecte. Veuillez retourner en arrière et corriger.');
341
342
343 // Load the appropriate DB layer class
344 switch ($db_type)
345 {
346 case 'mysql':
347 require PUN_ROOT.'include/dblayer/mysql.php';
348 break;
349
350 case 'mysqli':
351 require PUN_ROOT.'include/dblayer/mysqli.php';
352 break;
353
354 case 'pgsql':
355 require PUN_ROOT.'include/dblayer/pgsql.php';
356 break;
357
358 case 'sqlite':
359 require PUN_ROOT.'include/dblayer/sqlite.php';
360 break;
361
362 default:
363 error('\''.pun_htmlspecialchars($db_type).'\' is not a valid database type.');
364 }
365
366 // Create the database object (and connect/select db)
367 $db = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, false);
368
369
370 // Do some DB type specific checks
371 switch ($db_type)
372 {
373 case 'mysql':
374 case 'mysqli':
375 break;
376
377 case 'pgsql':
378 // Make sure we are running at least PHP 4.3.0 (needed only for PostgreSQL)
379 if (version_compare(PHP_VERSION, '4.3.0', '<'))
380 error('Vous utilisez la version '.PHP_VERSION.'de PHP. FluxBB nécéssite au minimum PHP 4.3.0 pour fonctionner correctement avec PostgreSQL. Vous devez mettre à jour votre installation de PHP ou utiliser une base de données différente pour continuer.');
381 break;
382
383 case 'sqlite':
384 if (strtolower($db_prefix) == 'sqlite_')
385 error('Le préfixe de tables \'sqlite_\' est réservé pour l\'utilisation du moteur SQLite. Veuillez choisir un préfixe différent.');
386 break;
387 }
388
389
390 // Make sure FluxBB isn't already installed
391 $result = $db->query('SELECT 1 FROM '.$db_prefix.'users WHERE id=1');
392 if ($db->num_rows($result))
393 error('Une table nommée "'.$db_prefix.'users" est déjà présente dans la base de données "'.$db_name.'". Ceci pourrait signifier que FluxBB est déjà installé ou qu\'un autre logiciel est installé et occupe un ou plusieurs des noms de tables nécéssaires à FluxBB. Si vous souhaitez installer plusieurs copies de FluxBB sur la même base de donnés, vous devez choisir des préfixes de tables différents.');
394
395
396 // Create all tables
397 switch ($db_type)
398 {
399 case 'mysql':
400 case 'mysqli':
401 $sql = 'CREATE TABLE '.$db_prefix."bans (
402 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
403 username VARCHAR(200),
404 ip VARCHAR(255),
405 email VARCHAR(50),
406 message VARCHAR(255),
407 expire INT(10) UNSIGNED,
408 PRIMARY KEY (id)
409 ) TYPE=MyISAM;";
410 break;
411
412 case 'pgsql':
413 $db->start_transaction();
414
415 $sql = 'CREATE TABLE '.$db_prefix."bans (
416 id SERIAL,
417 username VARCHAR(200),
418 ip VARCHAR(255),
419 email VARCHAR(50),
420 message VARCHAR(255),
421 expire INT,
422 PRIMARY KEY (id)
423 )";
424 break;
425
426 case 'sqlite':
427 $db->start_transaction();
428
429 $sql = 'CREATE TABLE '.$db_prefix."bans (
430 id INTEGER NOT NULL,
431 username VARCHAR(200),
432 ip VARCHAR(255),
433 email VARCHAR(50),
434 message VARCHAR(255),
435 expire INTEGER,
436 PRIMARY KEY (id)
437 )";
438 break;
439
440 }
441
442 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'bans. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
443
444
445 switch ($db_type)
446 {
447 case 'mysql':
448 case 'mysqli':
449 $sql = 'CREATE TABLE '.$db_prefix."categories (
450 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
451 cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
452 disp_position INT(10) NOT NULL DEFAULT 0,
453 PRIMARY KEY (id)
454 ) TYPE=MyISAM;";
455 break;
456
457 case 'pgsql':
458 $sql = 'CREATE TABLE '.$db_prefix."categories (
459 id SERIAL,
460 cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
461 disp_position INT NOT NULL DEFAULT 0,
462 PRIMARY KEY (id)
463 )";
464 break;
465
466 case 'sqlite':
467 $sql = 'CREATE TABLE '.$db_prefix."categories (
468 id INTEGER NOT NULL,
469 cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
470 disp_position INTEGER NOT NULL DEFAULT 0,
471 PRIMARY KEY (id)
472 )";
473 break;
474 }
475
476 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'categories. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
477
478
479
480 switch ($db_type)
481 {
482 case 'mysql':
483 case 'mysqli':
484 $sql = 'CREATE TABLE '.$db_prefix."censoring (
485 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
486 search_for VARCHAR(60) NOT NULL DEFAULT '',
487 replace_with VARCHAR(60) NOT NULL DEFAULT '',
488 PRIMARY KEY (id)
489 ) TYPE=MyISAM;";
490 break;
491
492 case 'pgsql':
493 $sql = 'CREATE TABLE '.$db_prefix."censoring (
494 id SERIAL,
495 search_for VARCHAR(60) NOT NULL DEFAULT '',
496 replace_with VARCHAR(60) NOT NULL DEFAULT '',
497 PRIMARY KEY (id)
498 )";
499 break;
500
501 case 'sqlite':
502 $sql = 'CREATE TABLE '.$db_prefix."censoring (
503 id INTEGER NOT NULL,
504 search_for VARCHAR(60) NOT NULL DEFAULT '',
505 replace_with VARCHAR(60) NOT NULL DEFAULT '',
506 PRIMARY KEY (id)
507 )";
508 break;
509 }
510
511 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'censoring. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
512
513
514
515 switch ($db_type)
516 {
517 case 'mysql':
518 case 'mysqli':
519 $sql = 'CREATE TABLE '.$db_prefix."config (
520 conf_name VARCHAR(255) NOT NULL DEFAULT '',
521 conf_value TEXT,
522 PRIMARY KEY (conf_name)
523 ) TYPE=MyISAM;";
524 break;
525
526 case 'pgsql':
527 $sql = 'CREATE TABLE '.$db_prefix."config (
528 conf_name VARCHAR(255) NOT NULL DEFAULT '',
529 conf_value TEXT,
530 PRIMARY KEY (conf_name)
531 )";
532 break;
533
534 case 'sqlite':
535 $sql = 'CREATE TABLE '.$db_prefix."config (
536 conf_name VARCHAR(255) NOT NULL DEFAULT '',
537 conf_value TEXT,
538 PRIMARY KEY (conf_name)
539 )";
540 break;
541 }
542
543 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'config. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
544
545
546
547 switch ($db_type)
548 {
549 case 'mysql':
550 case 'mysqli':
551 $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
552 group_id INT(10) NOT NULL DEFAULT 0,
553 forum_id INT(10) NOT NULL DEFAULT 0,
554 read_forum TINYINT(1) NOT NULL DEFAULT 1,
555 post_replies TINYINT(1) NOT NULL DEFAULT 1,
556 post_topics TINYINT(1) NOT NULL DEFAULT 1,
557 PRIMARY KEY (group_id, forum_id)
558 ) TYPE=MyISAM;";
559 break;
560
561 case 'pgsql':
562 $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
563 group_id INT NOT NULL DEFAULT 0,
564 forum_id INT NOT NULL DEFAULT 0,
565 read_forum SMALLINT NOT NULL DEFAULT 1,
566 post_replies SMALLINT NOT NULL DEFAULT 1,
567 post_topics SMALLINT NOT NULL DEFAULT 1,
568 PRIMARY KEY (group_id, forum_id)
569 )";
570 break;
571
572 case 'sqlite':
573 $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
574 group_id INTEGER NOT NULL DEFAULT 0,
575 forum_id INTEGER NOT NULL DEFAULT 0,
576 read_forum INTEGER NOT NULL DEFAULT 1,
577 post_replies INTEGER NOT NULL DEFAULT 1,
578 post_topics INTEGER NOT NULL DEFAULT 1,
579 PRIMARY KEY (group_id, forum_id)
580 )";
581 break;
582 }
583
584 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'forum_perms. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
585
586
587
588 switch ($db_type)
589 {
590 case 'mysql':
591 case 'mysqli':
592 $sql = 'CREATE TABLE '.$db_prefix."forums (
593 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
594 forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
595 forum_desc TEXT,
596 redirect_url VARCHAR(100),
597 moderators TEXT,
598 num_topics MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
599 num_posts MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
600 last_post INT(10) UNSIGNED,
601 last_post_id INT(10) UNSIGNED,
602 last_poster VARCHAR(200),
603 sort_by TINYINT(1) NOT NULL DEFAULT 0,
604 disp_position INT(10) NOT NULL DEFAULT 0,
605 cat_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
606 PRIMARY KEY (id)
607 ) TYPE=MyISAM;";
608 break;
609
610 case 'pgsql':
611 $sql = 'CREATE TABLE '.$db_prefix."forums (
612 id SERIAL,
613 forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
614 forum_desc TEXT,
615 redirect_url VARCHAR(100),
616 moderators TEXT,
617 num_topics INT NOT NULL DEFAULT 0,
618 num_posts INT NOT NULL DEFAULT 0,
619 last_post INT,
620 last_post_id INT,
621 last_poster VARCHAR(200),
622 sort_by SMALLINT NOT NULL DEFAULT 0,
623 disp_position INT NOT NULL DEFAULT 0,
624 cat_id INT NOT NULL DEFAULT 0,
625 PRIMARY KEY (id)
626 )";
627 break;
628
629 case 'sqlite':
630 $sql = 'CREATE TABLE '.$db_prefix."forums (
631 id INTEGER NOT NULL,
632 forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
633 forum_desc TEXT,
634 redirect_url VARCHAR(100),
635 moderators TEXT,
636 num_topics INTEGER NOT NULL DEFAULT 0,
637 num_posts INTEGER NOT NULL DEFAULT 0,
638 last_post INTEGER,
639 last_post_id INTEGER,
640 last_poster VARCHAR(200),
641 sort_by INTEGER NOT NULL DEFAULT 0,
642 disp_position INTEGER NOT NULL DEFAULT 0,
643 cat_id INTEGER NOT NULL DEFAULT 0,
644 PRIMARY KEY (id)
645 )";
646 break;
647 }
648
649 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'forums. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
650
651
652
653 switch ($db_type)
654 {
655 case 'mysql':
656 case 'mysqli':
657 $sql = 'CREATE TABLE '.$db_prefix."groups (
658 g_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
659 g_title VARCHAR(50) NOT NULL DEFAULT '',
660 g_user_title VARCHAR(50),
661 g_read_board TINYINT(1) NOT NULL DEFAULT 1,
662 g_post_replies TINYINT(1) NOT NULL DEFAULT 1,
663 g_post_topics TINYINT(1) NOT NULL DEFAULT 1,
664 g_post_polls TINYINT(1) NOT NULL DEFAULT 1,
665 g_edit_posts TINYINT(1) NOT NULL DEFAULT 1,
666 g_delete_posts TINYINT(1) NOT NULL DEFAULT 1,
667 g_delete_topics TINYINT(1) NOT NULL DEFAULT 1,
668 g_set_title TINYINT(1) NOT NULL DEFAULT 1,
669 g_search TINYINT(1) NOT NULL DEFAULT 1,
670 g_search_users TINYINT(1) NOT NULL DEFAULT 1,
671 g_edit_subjects_interval SMALLINT(6) NOT NULL DEFAULT 300,
672 g_post_flood SMALLINT(6) NOT NULL DEFAULT 30,
673 g_search_flood SMALLINT(6) NOT NULL DEFAULT 30,
674 PRIMARY KEY (g_id)
675 ) TYPE=MyISAM;";
676 break;
677
678 case 'pgsql':
679 $sql = 'CREATE TABLE '.$db_prefix."groups (
680 g_id SERIAL,
681 g_title VARCHAR(50) NOT NULL DEFAULT '',
682 g_user_title VARCHAR(50),
683 g_read_board SMALLINT NOT NULL DEFAULT 1,
684 g_post_replies SMALLINT NOT NULL DEFAULT 1,
685 g_post_topics SMALLINT NOT NULL DEFAULT 1,
686 g_post_polls SMALLINT NOT NULL DEFAULT 1,
687 g_edit_posts SMALLINT NOT NULL DEFAULT 1,
688 g_delete_posts SMALLINT NOT NULL DEFAULT 1,
689 g_delete_topics SMALLINT NOT NULL DEFAULT 1,
690 g_set_title SMALLINT NOT NULL DEFAULT 1,
691 g_search SMALLINT NOT NULL DEFAULT 1,
692 g_search_users SMALLINT NOT NULL DEFAULT 1,
693 g_edit_subjects_interval SMALLINT NOT NULL DEFAULT 300,
694 g_post_flood SMALLINT NOT NULL DEFAULT 30,
695 g_search_flood SMALLINT NOT NULL DEFAULT 30,
696 PRIMARY KEY (g_id)
697 )";
698 break;
699
700 case 'sqlite':
701 $sql = 'CREATE TABLE '.$db_prefix."groups (
702 g_id INTEGER NOT NULL,
703 g_title VARCHAR(50) NOT NULL DEFAULT '',
704 g_user_title VARCHAR(50),
705 g_read_board INTEGER NOT NULL DEFAULT 1,
706 g_post_replies INTEGER NOT NULL DEFAULT 1,
707 g_post_topics INTEGER NOT NULL DEFAULT 1,
708 g_post_polls INTEGER NOT NULL DEFAULT 1,
709 g_edit_posts INTEGER NOT NULL DEFAULT 1,
710 g_delete_posts INTEGER NOT NULL DEFAULT 1,
711 g_delete_topics INTEGER NOT NULL DEFAULT 1,
712 g_set_title INTEGER NOT NULL DEFAULT 1,
713 g_search INTEGER NOT NULL DEFAULT 1,
714 g_search_users INTEGER NOT NULL DEFAULT 1,
715 g_edit_subjects_interval INTEGER NOT NULL DEFAULT 300,
716 g_post_flood INTEGER NOT NULL DEFAULT 30,
717 g_search_flood INTEGER NOT NULL DEFAULT 30,
718 PRIMARY KEY (g_id)
719 )";
720 break;
721 }
722
723 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'groups. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
724
725
726
727 switch ($db_type)
728 {
729 case 'mysql':
730 case 'mysqli':
731 $sql = 'CREATE TABLE '.$db_prefix."online (
732 user_id INT(10) UNSIGNED NOT NULL DEFAULT 1,
733 ident VARCHAR(200) NOT NULL DEFAULT '',
734 logged INT(10) UNSIGNED NOT NULL DEFAULT 0,
735 idle TINYINT(1) NOT NULL DEFAULT 0
736 ) TYPE=HEAP;";
737 break;
738
739 case 'pgsql':
740 $sql = 'CREATE TABLE '.$db_prefix."online (
741 user_id INT NOT NULL DEFAULT 1,
742 ident VARCHAR(200) NOT NULL DEFAULT '',
743 logged INT NOT NULL DEFAULT 0,
744 idle SMALLINT NOT NULL DEFAULT 0
745 )";
746 break;
747
748 case 'sqlite':
749 $sql = 'CREATE TABLE '.$db_prefix."online (
750 user_id INTEGER NOT NULL DEFAULT 1,
751 ident VARCHAR(200) NOT NULL DEFAULT '',
752 logged INTEGER NOT NULL DEFAULT 0,
753 idle INTEGER NOT NULL DEFAULT 0
754 )";
755 break;
756 }
757
758 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'online. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
759
760
761
762 switch ($db_type)
763 {
764 case 'mysql':
765 case 'mysqli':
766 $sql = 'CREATE TABLE '.$db_prefix."posts (
767 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
768 poster VARCHAR(200) NOT NULL DEFAULT '',
769 poster_id INT(10) UNSIGNED NOT NULL DEFAULT 1,
770 poster_ip VARCHAR(15),
771 poster_email VARCHAR(50),
772 message TEXT,
773 hide_smilies TINYINT(1) NOT NULL DEFAULT 0,
774 posted INT(10) UNSIGNED NOT NULL DEFAULT 0,
775 edited INT(10) UNSIGNED,
776 edited_by VARCHAR(200),
777 topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
778 PRIMARY KEY (id)
779 ) TYPE=MyISAM;";
780 break;
781
782 case 'pgsql':
783 $sql = 'CREATE TABLE '.$db_prefix."posts (
784 id SERIAL,
785 poster VARCHAR(200) NOT NULL DEFAULT '',
786 poster_id INT NOT NULL DEFAULT 1,
787 poster_ip VARCHAR(15),
788 poster_email VARCHAR(50),
789 message TEXT,
790 hide_smilies SMALLINT NOT NULL DEFAULT 0,
791 posted INT NOT NULL DEFAULT 0,
792 edited INT,
793 edited_by VARCHAR(200),
794 topic_id INT NOT NULL DEFAULT 0,
795 PRIMARY KEY (id)
796 )";
797 break;
798
799 case 'sqlite':
800 $sql = 'CREATE TABLE '.$db_prefix."posts (
801 id INTEGER NOT NULL,
802 poster VARCHAR(200) NOT NULL DEFAULT '',
803 poster_id INTEGER NOT NULL DEFAULT 1,
804 poster_ip VARCHAR(15),
805 poster_email VARCHAR(50),
806 message TEXT,
807 hide_smilies INTEGER NOT NULL DEFAULT 0,
808 posted INTEGER NOT NULL DEFAULT 0,
809 edited INTEGER,
810 edited_by VARCHAR(200),
811 topic_id INTEGER NOT NULL DEFAULT 0,
812 PRIMARY KEY (id)
813 )";
814 break;
815 }
816
817 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'posts. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
818
819
820
821 switch ($db_type)
822 {
823 case 'mysql':
824 case 'mysqli':
825 $sql = 'CREATE TABLE '.$db_prefix."ranks (
826 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
827 rank VARCHAR(50) NOT NULL DEFAULT '',
828 min_posts MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
829 PRIMARY KEY (id)
830 ) TYPE=MyISAM;";
831 break;
832
833 case 'pgsql':
834 $sql = 'CREATE TABLE '.$db_prefix."ranks (
835 id SERIAL,
836 rank VARCHAR(50) NOT NULL DEFAULT '',
837 min_posts INT NOT NULL DEFAULT 0,
838 PRIMARY KEY (id)
839 )";
840 break;
841
842 case 'sqlite':
843 $sql = 'CREATE TABLE '.$db_prefix."ranks (
844 id INTEGER NOT NULL,
845 rank VARCHAR(50) NOT NULL DEFAULT '',
846 min_posts INTEGER NOT NULL DEFAULT 0,
847 PRIMARY KEY (id)
848 )";
849 break;
850 }
851
852 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'titles. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
853
854
855
856 switch ($db_type)
857 {
858 case 'mysql':
859 case 'mysqli':
860 $sql = 'CREATE TABLE '.$db_prefix."reports (
861 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
862 post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
863 topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
864 forum_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
865 reported_by INT(10) UNSIGNED NOT NULL DEFAULT 0,
866 created INT(10) UNSIGNED NOT NULL DEFAULT 0,
867 message TEXT,
868 zapped INT(10) UNSIGNED,
869 zapped_by INT(10) UNSIGNED,
870 PRIMARY KEY (id)
871 ) TYPE=MyISAM;";
872 break;
873
874 case 'pgsql':
875 $sql = 'CREATE TABLE '.$db_prefix."reports (
876 id SERIAL,
877 post_id INT NOT NULL DEFAULT 0,
878 topic_id INT NOT NULL DEFAULT 0,
879 forum_id INT NOT NULL DEFAULT 0,
880 reported_by INT NOT NULL DEFAULT 0,
881 created INT NOT NULL DEFAULT 0,
882 message TEXT,
883 zapped INT,
884 zapped_by INT,
885 PRIMARY KEY (id)
886 )";
887 break;
888
889 case 'sqlite':
890 $sql = 'CREATE TABLE '.$db_prefix."reports (
891 id INTEGER NOT NULL,
892 post_id INTEGER NOT NULL DEFAULT 0,
893 topic_id INTEGER NOT NULL DEFAULT 0,
894 forum_id INTEGER NOT NULL DEFAULT 0,
895 reported_by INTEGER NOT NULL DEFAULT 0,
896 created INTEGER NOT NULL DEFAULT 0,
897 message TEXT,
898 zapped INTEGER,
899 zapped_by INTEGER,
900 PRIMARY KEY (id)
901 )";
902 break;
903 }
904
905 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'reports. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
906
907
908
909 switch ($db_type)
910 {
911 case 'mysql':
912 case 'mysqli':
913 $sql = 'CREATE TABLE '.$db_prefix."search_cache (
914 id INT(10) UNSIGNED NOT NULL DEFAULT 0,
915 ident VARCHAR(200) NOT NULL DEFAULT '',
916 search_data TEXT,
917 PRIMARY KEY (id)
918 ) TYPE=MyISAM;";
919 break;
920
921 case 'pgsql':
922 $sql = 'CREATE TABLE '.$db_prefix."search_cache (
923 id INT NOT NULL DEFAULT 0,
924 ident VARCHAR(200) NOT NULL DEFAULT '',
925 search_data TEXT,
926 PRIMARY KEY (id)
927 )";
928 break;
929
930 case 'sqlite':
931 $sql = 'CREATE TABLE '.$db_prefix."search_cache (
932 id INTEGER NOT NULL DEFAULT 0,
933 ident VARCHAR(200) NOT NULL DEFAULT '',
934 search_data TEXT,
935 PRIMARY KEY (id)
936 )";
937 break;
938 }
939
940 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'search_cache. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
941
942
943
944 switch ($db_type)
945 {
946 case 'mysql':
947 case 'mysqli':
948 $sql = 'CREATE TABLE '.$db_prefix."search_matches (
949 post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
950 word_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
951 subject_match TINYINT(1) NOT NULL DEFAULT 0
952 ) TYPE=MyISAM;";
953 break;
954
955 case 'pgsql':
956 $sql = 'CREATE TABLE '.$db_prefix."search_matches (
957 post_id INT NOT NULL DEFAULT 0,
958 word_id INT NOT NULL DEFAULT 0,
959 subject_match SMALLINT NOT NULL DEFAULT 0
960 )";
961 break;
962
963 case 'sqlite':
964 $sql = 'CREATE TABLE '.$db_prefix."search_matches (
965 post_id INTEGER NOT NULL DEFAULT 0,
966 word_id INTEGER NOT NULL DEFAULT 0,
967 subject_match INTEGER NOT NULL DEFAULT 0
968 )";
969 break;
970 }
971
972 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'search_matches. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
973
974
975
976 switch ($db_type)
977 {
978 case 'mysql':
979 case 'mysqli':
980 $sql = 'CREATE TABLE '.$db_prefix."search_words (
981 id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
982 word VARCHAR(20) BINARY NOT NULL DEFAULT '',
983 PRIMARY KEY (word),
984 KEY ".$db_prefix."search_words_id_idx (id)
985 ) TYPE=MyISAM;";
986 break;
987
988 case 'pgsql':
989 $sql = 'CREATE TABLE '.$db_prefix."search_words (
990 id SERIAL,
991 word VARCHAR(20) NOT NULL DEFAULT '',
992 PRIMARY KEY (word)
993 )";
994 break;
995
996 case 'sqlite':
997 $sql = 'CREATE TABLE '.$db_prefix."search_words (
998 id INTEGER NOT NULL,
999 word VARCHAR(20) NOT NULL DEFAULT '',
1000 PRIMARY KEY (id),
1001 UNIQUE (word)
1002 )";
1003 break;
1004 }
1005
1006 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'search_words. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
1007
1008
1009
1010 switch ($db_type)
1011 {
1012 case 'mysql':
1013 case 'mysqli':
1014 $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1015 user_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1016 topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1017 PRIMARY KEY (user_id, topic_id)
1018 ) TYPE=MyISAM;";
1019 break;
1020
1021 case 'pgsql':
1022 $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1023 user_id INT NOT NULL DEFAULT 0,
1024 topic_id INT NOT NULL DEFAULT 0,
1025 PRIMARY KEY (user_id, topic_id)
1026 )";
1027 break;
1028
1029 case 'sqlite':
1030 $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1031 user_id INTEGER NOT NULL DEFAULT 0,
1032 topic_id INTEGER NOT NULL DEFAULT 0,
1033 PRIMARY KEY (user_id, topic_id)
1034 )";
1035 break;
1036 }
1037
1038 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'subscriptions. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
1039
1040
1041
1042 switch ($db_type)
1043 {
1044 case 'mysql':
1045 case 'mysqli':
1046 $sql = 'CREATE TABLE '.$db_prefix."topics (
1047 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1048 poster VARCHAR(200) NOT NULL DEFAULT '',
1049 subject VARCHAR(255) NOT NULL DEFAULT '',
1050 posted INT(10) UNSIGNED NOT NULL DEFAULT 0,
1051 last_post INT(10) UNSIGNED NOT NULL DEFAULT 0,
1052 last_post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1053 last_poster VARCHAR(200),
1054 num_views MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
1055 num_replies MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
1056 closed TINYINT(1) NOT NULL DEFAULT 0,
1057 sticky TINYINT(1) NOT NULL DEFAULT 0,
1058 moved_to INT(10) UNSIGNED,
1059 forum_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1060 PRIMARY KEY (id)
1061 ) TYPE=MyISAM;";
1062 break;
1063
1064 case 'pgsql':
1065 $sql = 'CREATE TABLE '.$db_prefix."topics (
1066 id SERIAL,
1067 poster VARCHAR(200) NOT NULL DEFAULT '',
1068 subject VARCHAR(255) NOT NULL DEFAULT '',
1069 posted INT NOT NULL DEFAULT 0,
1070 last_post INT NOT NULL DEFAULT 0,
1071 last_post_id INT NOT NULL DEFAULT 0,
1072 last_poster VARCHAR(200),
1073 num_views INT NOT NULL DEFAULT 0,
1074 num_replies INT NOT NULL DEFAULT 0,
1075 closed SMALLINT NOT NULL DEFAULT 0,
1076 sticky SMALLINT NOT NULL DEFAULT 0,
1077 moved_to INT,
1078 forum_id INT NOT NULL DEFAULT 0,
1079 PRIMARY KEY (id)
1080 )";
1081 break;
1082
1083 case 'sqlite':
1084 $sql = 'CREATE TABLE '.$db_prefix."topics (
1085 id INTEGER NOT NULL,
1086 poster VARCHAR(200) NOT NULL DEFAULT '',
1087 subject VARCHAR(255) NOT NULL DEFAULT '',
1088 posted INTEGER NOT NULL DEFAULT 0,
1089 last_post INTEGER NOT NULL DEFAULT 0,
1090 last_post_id INTEGER NOT NULL DEFAULT 0,
1091 last_poster VARCHAR(200),
1092 num_views INTEGER NOT NULL DEFAULT 0,
1093 num_replies INTEGER NOT NULL DEFAULT 0,
1094 closed INTEGER NOT NULL DEFAULT 0,
1095 sticky INTEGER NOT NULL DEFAULT 0,
1096 moved_to INTEGER,
1097 forum_id INTEGER NOT NULL DEFAULT 0,
1098 PRIMARY KEY (id)
1099 )";
1100 break;
1101 }
1102
1103 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'topics. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
1104
1105
1106
1107 switch ($db_type)
1108 {
1109 case 'mysql':
1110 case 'mysqli':
1111 $sql = 'CREATE TABLE '.$db_prefix."users (
1112 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1113 group_id INT(10) UNSIGNED NOT NULL DEFAULT 4,
1114 username VARCHAR(200) NOT NULL DEFAULT '',
1115 password VARCHAR(40) NOT NULL DEFAULT '',
1116 email VARCHAR(50) NOT NULL DEFAULT '',
1117 title VARCHAR(50),
1118 realname VARCHAR(40),
1119 url VARCHAR(100),
1120 jabber VARCHAR(75),
1121 icq VARCHAR(12),
1122 msn VARCHAR(50),
1123 aim VARCHAR(30),
1124 yahoo VARCHAR(30),
1125 location VARCHAR(30),
1126 use_avatar TINYINT(1) NOT NULL DEFAULT 0,
1127 signature TEXT,
1128 disp_topics TINYINT(3) UNSIGNED,
1129 disp_posts TINYINT(3) UNSIGNED,
1130 email_setting TINYINT(1) NOT NULL DEFAULT 1,
1131 save_pass TINYINT(1) NOT NULL DEFAULT 1,
1132 notify_with_post TINYINT(1) NOT NULL DEFAULT 0,
1133 show_smilies TINYINT(1) NOT NULL DEFAULT 1,
1134 show_img TINYINT(1) NOT NULL DEFAULT 1,
1135 show_img_sig TINYINT(1) NOT NULL DEFAULT 1,
1136 show_avatars TINYINT(1) NOT NULL DEFAULT 1,
1137 show_sig TINYINT(1) NOT NULL DEFAULT 1,
1138 timezone FLOAT NOT NULL DEFAULT 0,
1139 language VARCHAR(25) NOT NULL DEFAULT 'English',
1140 style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1141 num_posts INT(10) UNSIGNED NOT NULL DEFAULT 0,
1142 last_post INT(10) UNSIGNED,
1143 registered INT(10) UNSIGNED NOT NULL DEFAULT 0,
1144 registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1145 last_visit INT(10) UNSIGNED NOT NULL DEFAULT 0,
1146 admin_note VARCHAR(30),
1147 activate_string VARCHAR(50),
1148 activate_key VARCHAR(8),
1149 PRIMARY KEY (id)
1150 ) TYPE=MyISAM;";
1151 break;
1152
1153 case 'pgsql':
1154 $sql = 'CREATE TABLE '.$db_prefix."users (
1155 id SERIAL,
1156 group_id INT NOT NULL DEFAULT 4,
1157 username VARCHAR(200) NOT NULL DEFAULT '',
1158 password VARCHAR(40) NOT NULL DEFAULT '',
1159 email VARCHAR(50) NOT NULL DEFAULT '',
1160 title VARCHAR(50),
1161 realname VARCHAR(40),
1162 url VARCHAR(100),
1163 jabber VARCHAR(75),
1164 icq VARCHAR(12),
1165 msn VARCHAR(50),
1166 aim VARCHAR(30),
1167 yahoo VARCHAR(30),
1168 location VARCHAR(30),
1169 use_avatar SMALLINT NOT NULL DEFAULT 0,
1170 signature TEXT,
1171 disp_topics SMALLINT,
1172 disp_posts SMALLINT,
1173 email_setting SMALLINT NOT NULL DEFAULT 1,
1174 save_pass SMALLINT NOT NULL DEFAULT 1,
1175 notify_with_post SMALLINT NOT NULL DEFAULT 0,
1176 show_smilies SMALLINT NOT NULL DEFAULT 1,
1177 show_img SMALLINT NOT NULL DEFAULT 1,
1178 show_img_sig SMALLINT NOT NULL DEFAULT 1,
1179 show_avatars SMALLINT NOT NULL DEFAULT 1,
1180 show_sig SMALLINT NOT NULL DEFAULT 1,
1181 timezone REAL NOT NULL DEFAULT 0,
1182 language VARCHAR(25) NOT NULL DEFAULT 'English',
1183 style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1184 num_posts INT NOT NULL DEFAULT 0,
1185 last_post INT,
1186 registered INT NOT NULL DEFAULT 0,
1187 registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1188 last_visit INT NOT NULL DEFAULT 0,
1189 admin_note VARCHAR(30),
1190 activate_string VARCHAR(50),
1191 activate_key VARCHAR(8),
1192 PRIMARY KEY (id)
1193 )";
1194 break;
1195
1196 case 'sqlite':
1197 $sql = 'CREATE TABLE '.$db_prefix."users (
1198 id INTEGER NOT NULL,
1199 group_id INTEGER NOT NULL DEFAULT 4,
1200 username VARCHAR(200) NOT NULL DEFAULT '',
1201 password VARCHAR(40) NOT NULL DEFAULT '',
1202 email VARCHAR(50) NOT NULL DEFAULT '',
1203 title VARCHAR(50),
1204 realname VARCHAR(40),
1205 url VARCHAR(100),
1206 jabber VARCHAR(75),
1207 icq VARCHAR(12),
1208 msn VARCHAR(50),
1209 aim VARCHAR(30),
1210 yahoo VARCHAR(30),
1211 location VARCHAR(30),
1212 use_avatar INTEGER NOT NULL DEFAULT 0,
1213 signature TEXT,
1214 disp_topics INTEGER,
1215 disp_posts INTEGER,
1216 email_setting INTEGER NOT NULL DEFAULT 1,
1217 save_pass INTEGER NOT NULL DEFAULT 1,
1218 notify_with_post INTEGER NOT NULL DEFAULT 0,
1219 show_smilies INTEGER NOT NULL DEFAULT 1,
1220 show_img INTEGER NOT NULL DEFAULT 1,
1221 show_img_sig INTEGER NOT NULL DEFAULT 1,
1222 show_avatars INTEGER NOT NULL DEFAULT 1,
1223 show_sig INTEGER NOT NULL DEFAULT 1,
1224 timezone FLOAT NOT NULL DEFAULT 0,
1225 language VARCHAR(25) NOT NULL DEFAULT 'English',
1226 style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1227 num_posts INTEGER NOT NULL DEFAULT 0,
1228 last_post INTEGER,
1229 registered INTEGER NOT NULL DEFAULT 0,
1230 registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1231 last_visit INTEGER NOT NULL DEFAULT 0,
1232 admin_note VARCHAR(30),
1233 activate_string VARCHAR(50),
1234 activate_key VARCHAR(8),
1235 PRIMARY KEY (id)
1236 )";
1237 break;
1238 }
1239
1240 $db->query($sql) or error('Impossible de créer la table '.$db_prefix.'users. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
1241
1242
1243 // Add some indexes
1244 switch ($db_type)
1245 {
1246 case 'mysql':
1247 case 'mysqli':
1248 // We use MySQL's ALTER TABLE ... ADD INDEX syntax instead of CREATE INDEX to avoid problems with users lacking the INDEX privilege
1249 $queries[] = 'ALTER TABLE '.$db_prefix.'online ADD UNIQUE INDEX '.$db_prefix.'online_user_id_ident_idx(user_id,ident)';
1250 $queries[] = 'ALTER TABLE '.$db_prefix.'online ADD INDEX '.$db_prefix.'online_user_id_idx(user_id)';
1251 $queries[] = 'ALTER TABLE '.$db_prefix.'posts ADD INDEX '.$db_prefix.'posts_topic_id_idx(topic_id)';
1252 $queries[] = 'ALTER TABLE '.$db_prefix.'posts ADD INDEX '.$db_prefix.'posts_multi_idx(poster_id, topic_id)';
1253 $queries[] = 'ALTER TABLE '.$db_prefix.'reports ADD INDEX '.$db_prefix.'reports_zapped_idx(zapped)';
1254 $queries[] = 'ALTER TABLE '.$db_prefix.'search_matches ADD INDEX '.$db_prefix.'search_matches_word_id_idx(word_id)';
1255 $queries[] = 'ALTER TABLE '.$db_prefix.'search_matches ADD INDEX '.$db_prefix.'search_matches_post_id_idx(post_id)';
1256 $queries[] = 'ALTER TABLE '.$db_prefix.'topics ADD INDEX '.$db_prefix.'topics_forum_id_idx(forum_id)';
1257 $queries[] = 'ALTER TABLE '.$db_prefix.'topics ADD INDEX '.$db_prefix.'topics_moved_to_idx(moved_to)';
1258 $queries[] = 'ALTER TABLE '.$db_prefix.'users ADD INDEX '.$db_prefix.'users_registered_idx(registered)';
1259 $queries[] = 'ALTER TABLE '.$db_prefix.'search_cache ADD INDEX '.$db_prefix.'search_cache_ident_idx(ident(8))';
1260 $queries[] = 'ALTER TABLE '.$db_prefix.'users ADD INDEX '.$db_prefix.'users_username_idx(username(8))';
1261 break;
1262
1263 default:
1264 $queries[] = 'CREATE INDEX '.$db_prefix.'online_user_id_idx ON '.$db_prefix.'online(user_id)';
1265 $queries[] = 'CREATE INDEX '.$db_prefix.'posts_topic_id_idx ON '.$db_prefix.'posts(topic_id)';
1266 $queries[] = 'CREATE INDEX '.$db_prefix.'posts_multi_idx ON '.$db_prefix.'posts(poster_id, topic_id)';
1267 $queries[] = 'CREATE INDEX '.$db_prefix.'reports_zapped_idx ON '.$db_prefix.'reports(zapped)';
1268 $queries[] = 'CREATE INDEX '.$db_prefix.'search_matches_word_id_idx ON '.$db_prefix.'search_matches(word_id)';
1269 $queries[] = 'CREATE INDEX '.$db_prefix.'search_matches_post_id_idx ON '.$db_prefix.'search_matches(post_id)';
1270 $queries[] = 'CREATE INDEX '.$db_prefix.'topics_forum_id_idx ON '.$db_prefix.'topics(forum_id)';
1271 $queries[] = 'CREATE INDEX '.$db_prefix.'topics_moved_to_idx ON '.$db_prefix.'topics(moved_to)';
1272 $queries[] = 'CREATE INDEX '.$db_prefix.'users_registered_idx ON '.$db_prefix.'users(registered)';
1273 $queries[] = 'CREATE INDEX '.$db_prefix.'users_username_idx ON '.$db_prefix.'users(username)';
1274 $queries[] = 'CREATE INDEX '.$db_prefix.'search_cache_ident_idx ON '.$db_prefix.'search_cache(ident)';
1275 $queries[] = 'CREATE INDEX '.$db_prefix.'search_words_id_idx ON '.$db_prefix.'search_words(id)';
1276 break;
1277 }
1278
1279 @reset($queries);
1280 while (list(, $sql) = @each($queries))
1281 $db->query($sql) or error('Impossible de créer les index. Veuillez vérifier vos réglages et essayer à nouveau.', __FILE__, __LINE__, $db->error());
1282
1283
1284
1285 $now = time();
1286
1287 // Insert the four preset groups
1288 $db->query('INSERT INTO '.$db->prefix."groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_post_polls, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES('Administrateurs', 'Administrateur', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0)") or error('Impossible d\ajouter un groupe', __FILE__, __LINE__, $db->error());
1289 $db->query('INSERT INTO '.$db->prefix."groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_post_polls, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES('Modérateurs', 'Modérateur', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0)") or error('Impossible d\ajouter un groupe', __FILE__, __LINE__, $db->error());
1290 $db->query('INSERT INTO '.$db->prefix."groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_post_polls, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES('Invités', NULL, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0)") or error('Impossible d\ajouter un groupe', __FILE__, __LINE__, $db->error());
1291 $db->query('INSERT INTO '.$db->prefix."groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_post_polls, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES('Membres', NULL, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 300, 60, 30)") or error('Impossible d\ajouter un groupe', __FILE__, __LINE__, $db->error());
1292
1293 // Insert guest and first admin user
1294 $db->query('INSERT INTO '.$db_prefix."users (group_id, username, password, email) VALUES(3, 'Invité', 'Invité', 'Invité')")
1295 or error('Impossible d\'ajouter l\'utilisateur "invité". Veuillez vérifier vos réglages et essayer à nouveau.');
1296
1297 $db->query('INSERT INTO '.$db_prefix."users (group_id, username, password, email, num_posts, last_post, registered, registration_ip, last_visit, language) VALUES(1, '".$db->escape($username)."', '".pun_hash($password1)."', '$email', 1, ".$now.", ".$now.", '127.0.0.1', ".$now.", 'French')")
1298 or error('Impossible d\'ajouter le compte administrateur. Veuillez vérifier vos réglages et essayer à nouveau.');
1299
1300 // Insert config data
1301 $config = array(
1302 'o_cur_version' => "'$fluxbb_version'",
1303 'o_cur_version_fr' => "'$fluxbb_version_fr'",
1304 'o_board_title' => "'Mon forum FluxBB'",
1305 'o_board_desc' => "'Malheureusement personne ne peut vous dire ce que FluxBB est - vous devez le voir par vous-même.'",
1306 'o_server_timezone' => "'0'",
1307 'o_time_format' => "'H:i:s'",
1308 'o_date_format' => "'d-m-Y'",
1309 'o_timeout_visit' => "'600'",
1310 'o_timeout_online' => "'300'",
1311 'o_redirect_delay' => "'1'",
1312 'o_show_version' => "'0'",
1313 'o_show_user_info' => "'1'",
1314 'o_show_post_count' => "'1'",
1315 'o_smilies' => "'1'",
1316 'o_smilies_sig' => "'1'",
1317 'o_make_links' => "'1'",
1318 'o_default_lang' => "'French'",
1319 'o_default_style' => "'Oxygen'",
1320 'o_default_user_group' => "'4'",
1321 'o_topic_review' => "'15'",
1322 'o_disp_topics_default' => "'30'",
1323 'o_disp_posts_default' => "'25'",
1324 'o_indent_num_spaces' => "'4'",
1325 'o_quickpost' => "'1'",
1326 'o_users_online' => "'1'",
1327 'o_censoring' => "'0'",
1328 'o_ranks' => "'1'",
1329 'o_show_dot' => "'0'",
1330 'o_quickjump' => "'1'",
1331 'o_gzip' => "'0'",
1332 'o_additional_navlinks' => "''",
1333 'o_report_method' => "'0'",
1334 'o_regs_report' => "'0'",
1335 'o_mailing_list' => "'$email'",
1336 'o_avatars' => "'1'",
1337 'o_avatars_dir' => "'img/avatars'",
1338 'o_avatars_width' => "'60'",
1339 'o_avatars_height' => "'60'",
1340 'o_avatars_size' => "'10240'",
1341 'o_search_all_forums' => "'1'",
1342 'o_base_url' => "'$base_url'",
1343 'o_admin_email' => "'$email'",
1344 'o_webmaster_email' => "'$email'",
1345 'o_subscriptions' => "'1'",
1346 'o_smtp_host' => "NULL",
1347 'o_smtp_user' => "NULL",
1348 'o_smtp_pass' => "NULL",
1349 'o_regs_allow' => "'1'",
1350 'o_regs_verify' => "'0'",
1351 'o_announcement' => "'0'",
1352 'o_announcement_message' => "'Saisissez votre annonce ici.'",
1353 'o_rules' => "'0'",
1354 'o_rules_message' => "'Saisissez vos règles ici.'",
1355 'o_maintenance' => "'0'",
1356 'o_maintenance_message' => "'Les forums sont temporairement fermés pour des raisons de maintenance. Veuillez essayer à nouveau dans quelques minutes.<br />\\n<br />\\n/Administrateur'",
1357 'p_mod_edit_users' => "'1'",
1358 'p_mod_rename_users' => "'0'",
1359 'p_mod_change_passwords' => "'0'",
1360 'p_mod_ban_users' => "'0'",
1361 'p_message_bbcode' => "'1'",
1362 'p_message_img_tag' => "'1'",
1363 'p_message_all_caps' => "'1'",
1364 'p_subject_all_caps' => "'1'",
1365 'p_sig_all_caps' => "'1'",
1366 'p_sig_bbcode' => "'1'",
1367 'p_sig_img_tag' => "'0'",
1368 'p_sig_length' => "'400'",
1369 'p_sig_lines' => "'4'",
1370 'p_allow_banned_email' => "'1'",
1371 'p_allow_dupe_email' => "'0'",
1372 'p_force_guest_email' => "'1'"
1373 );
1374
1375 while (list($conf_name, $conf_value) = @each($config))
1376 {
1377 $db->query('INSERT INTO '.$db_prefix."config (conf_name, conf_value) VALUES('$conf_name', $conf_value)")
1378 or error('Impossible d\'insérer dans la table '.$db_prefix.'config. Veuillez vérifier votre configuration et essayez à nouveau.');
1379 }
1380
1381 // Insert some other default data
1382 $db->query('INSERT INTO '.$db_prefix."categories (cat_name, disp_position) VALUES('Catégorie test', 1)")
1383 or error('Impossible d\'insérer dans la table '.$db_prefix.'categories. Veuillez vérifier votre configuration et essayez à nouveau.');
1384
1385 $db->query('INSERT INTO '.$db_prefix."forums (forum_name, forum_desc, num_topics, num_posts, last_post, last_post_id, last_poster, disp_position, cat_id) VALUES('Forum test', 'Ceci est juste un forum de test.', 1, 1, ".$now.", 1, '".$db->escape($username)."', 1, 1)")
1386 or error('Impossible d\'insérer dans la table '.$db_prefix.'forums. Veuillez vérifier votre configuration et essayez à nouveau.');
1387
1388 $db->query('INSERT INTO '.$db_prefix."topics (poster, subject, posted, last_post, last_post_id, last_poster, forum_id) VALUES('".$db->escape($username)."', 'Message de test', ".$now.", ".$now.", 1, '".$db->escape($username)."', 1)")
1389 or error('Impossible d\'insérer dans la table '.$db_prefix.'topics. Veuillez vérifier votre configuration et essayez à nouveau.');
1390
1391 $db->query('INSERT INTO '.$db_prefix."posts (poster, poster_id, poster_ip, message, posted, topic_id) VALUES('".$db->escape($username)."', 2, '127.0.0.1', 'Si vous lisez ceci (et je devine que vous êtes évidement en train de le faire), votre installation de FluxBB semble avoir fonctionné ! Maintenant identifiez-vous et rendez-vous sur le panneau de contrôle administration pour configurer vos forums.', ".$now.", 1)")
1392 or error('Impossible d\'insérer dans la table '.$db_prefix.'posts. Veuillez vérifier votre configuration et essayez à nouveau.');
1393
1394 $db->query('INSERT INTO '.$db_prefix."ranks (rank, min_posts) VALUES('Nouveau membre', 0)")
1395 or error('Impossible d\'insérer dans la table '.$db_prefix.'ranks. Veuillez vérifier votre configuration et essayez à nouveau.');
1396
1397 $db->query('INSERT INTO '.$db_prefix."ranks (rank, min_posts) VALUES('Membre', 10)")
1398 or error('Impossible d\'insérer dans la table '.$db_prefix.'ranks. Veuillez vérifier votre configuration et essayez à nouveau.');
1399
1400
1401 if ($db_type == 'pgsql' || $db_type == 'sqlite')
1402 $db->end_transaction();
1403
1404
1405
1406 $alerts = '';
1407 // Check if the cache directory is writable
1408 if (!@is_writable('./cache/'))
1409 $alerts .= '<p style="font-size: 1.1em"><span style="color: #C03000"><strong>Le répertoire du cache n\'est actuellement pas accessible en écriture !</strong></span> Afin que FluxBB fonctionne corretement, le répertoire nommé <em>cache</em> doit être inscriptible par PHP. Effectuez un chmod pour régler les permissions appropriées à ce répertoire. Si vous avez un doute, chmod 0777.</p>';
1410
1411 // Check if default avatar directory is writable
1412 if (!@is_writable('./img/avatars/'))
1413 $alerts .= '<p style="font-size: 1.1em"><span style="color: #C03000"><strong>Le répertoire des avatars n\'est actuellement pas accessible en écriture !</strong></span> Si vous voulez que les utilisateurs puissent envoyer sur le serveur leur propres avatars vous devez régler les permissions du dossier <em>img/avatars</em> pour que PHP puisse écrire dedans. Effectuez un chmod pour régler les permissions appropriées à ce répertoire. Si vous avez un doute, chmod 0777.</p>';
1414
1415
1416 /// Display config.php and give further instructions
1417 $config = '<?php'."\n\n".'$db_type = \''.$db_type."';\n".'$db_host = \''.$db_host."';\n".'$db_name = \''.$db_name."';\n".'$db_username = \''.$db_username."';\n".'$db_password = \''.$db_password."';\n".'$db_prefix = \''.$db_prefix."';\n".'$p_connect = false;'."\n\n".'$cookie_name = '."'forum_cookie';\n".'$cookie_domain = '."'';\n".'$cookie_path = '."'/';\n".'$cookie_secure = 0;'."\n".'$cookie_seed = \''.substr(sha1(uniqid(rand(), true)), 0, 16)."';\n\ndefine('PUN', 1);";
1418
1419
1420?>
1421<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1422
1423<html>
1424<head>
1425<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
1426<title>Installation de FluxBB</title>
1427<link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
1428</head>
1429<body>
1430
1431<div id="puninstall" style="margin: auto 10% auto 10%">
1432<div class="pun">
1433
1434<div class="blockform">
1435 <h2>Instructions finales</h2>
1436 <div class="box">
1437 <div class="fakeform">
1438 <div class="inform">
1439 <div class="forminfo">
1440 <p>Afin de terminer l'installation tout ce que vous avez à faire est de <strong>copier et coller le texte de la boite ci-dessous dans un fichier que vous nommerez <em>config.php</em> et qu'ensuite vous enverrez sur votre serveur dans le répertoire racine de votre installation de FluxBB</strong>. Assurez-vous qu'il n'y a aucun saut de ligne ou d'espace avant &lt;?php et après ?&gt; dans ce fichier. Vous pourrez par la suite modifier config.php si vous reconfigurez votre installation (ex. modification du mot de passe base de donnés ... ).</p>
1441<?php if ($alerts != ''): ?> <?php echo $alerts."\n" ?>
1442<?php endif; ?> </div>
1443 <fieldset>
1444 <legend>Copiez ce contenu dans config.php</legend>
1445 <div class="infldset">
1446 <textarea cols="80" rows="20"><?php echo htmlspecialchars($config) ?></textarea>
1447 </div>
1448 </fieldset>
1449 </div>
1450 <div class="inform">
1451 <div class="forminfo">
1452 <p>Une fois que vous aurez créé config.php avec le contenu ci-dessus, FluxBB sera installé !</p>
1453 <p><a href="index.php">Aller à l'index des forums</a></p>
1454 </div>
1455 </div>
1456 </div>
1457 </div>
1458</div>
1459
1460</div>
1461</div>
1462
1463</body>
1464</html>
1465<?php
1466
1467}