source: trunk/web/punbb/install.php @ 3

Last change on this file since 3 was 1, checked in by dj3c1t, 13 years ago

import initial

File size: 55.6 KB
Line 
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 PunBB version this script installs
27$punbb_version = '1.2.10';
28$punbb_version_fr = '1.2.10';
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 PunBB 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. PunBB nécéssite au minimum PHP 4.1.0 pour fonctionner correctement. Vous devez mettre à jour votre installation de PHP afin que vous ne puissiez continuer.');
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 PunBB peut utiliser. Afin d\'installer PunBB, 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 PunBB</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 PunBB</span></h2>
121        <div class="box">
122                <div class="inbox">
123                        <p>Bienvenue sur l'application d'installation de  PunBB ! Vous vous apprêtez à installer PunBB. 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 PunBB</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 PunBB, 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>PunBB 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>PunBB 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 PunBB 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, PunBB 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 PunBB 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 PunBB.</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 PunBB</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 PunBB (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 PunBB.</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>PunBB a rapporté&#160;:</strong> '.htmlspecialchars($message).'<br /><br />';
287
288                if ($db_error !== false)
289                        echo '<strong>La base de données a rapporté&#160;:</strong> '.htmlspecialchars($db_error['error_msg']).(($db_error['error_no']) ? ' (Errno: '.$db_error['error_no'].')' : '');
290
291                exit;
292        }
293
294
295        $db_type = $_POST['req_db_type'];
296        $db_host = trim($_POST['req_db_host']);
297        $db_name = trim($_POST['req_db_name']);
298        $db_username = unescape(trim($_POST['db_username']));
299        $db_password = unescape(trim($_POST['db_password']));
300        $db_prefix = trim($_POST['db_prefix']);
301        $username = unescape(trim($_POST['req_username']));
302        $email = strtolower(trim($_POST['req_email']));
303        $password1 = unescape(trim($_POST['req_password1']));
304        $password2 = unescape(trim($_POST['req_password2']));
305
306
307        // Make sure base_url doesn't end with a slash
308        if (substr($_POST['req_base_url'], -1) == '/')
309                $base_url = substr($_POST['req_base_url'], 0, -1);
310        else
311                $base_url = $_POST['req_base_url'];
312
313
314        // Validate username and passwords
315        if (strlen($username) < 2)
316                error('Le nom d\'utilisateur administrateur doit faire au moins 2 caractÚres de long. Veuillez retourner en arriÚre et corriger.');
317        if (strlen($password1) < 4)
318                error('Le mot de passe administrateur doit faire au moins 4 caractÚres de long. Veuillez retourner en arriÚre et corriger.');
319        if ($password1 != $password2)
320                error('Les mots de passe administrateur ne correspondent pas. Veuillez retourner en arriÚre et corriger.');
321        if (!strcasecmp($username, 'invité'))
322                error('Le nom d\'utilisateur \'invité\' est réservé. Veuillez retourner en arriÚre et corriger.');
323        if (!strcasecmp($username, 'guest'))
324                error('Le nom d\'utilisateur \'guest\' est réservé. Veuillez retourner en arriÚre et corriger.');
325        if (preg_match('/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/', $username))
326                error('Les noms d\'utilisateur ne peuvent être de la forme d\'une adresse IP. Veuillez retourner en arriÚre et corriger.');
327        if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username))
328                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.');
329
330        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))
331                error('L\'adresse e-mail administrateur que vous avez saisie est incorrecte. Veuillez retourner en arriÚre et corriger.');
332
333
334        // Load the appropriate DB layer class
335        switch ($db_type)
336        {
337                case 'mysql':
338                        require PUN_ROOT.'include/dblayer/mysql.php';
339                        break;
340
341                case 'mysqli':
342                        require PUN_ROOT.'include/dblayer/mysqli.php';
343                        break;
344
345                case 'pgsql':
346                        require PUN_ROOT.'include/dblayer/pgsql.php';
347                        break;
348
349                case 'sqlite':
350                        require PUN_ROOT.'include/dblayer/sqlite.php';
351                        break;
352                       
353                default:
354                        error('\''.$db_type.'\' n\'est pas un type de base de données valable.');
355        }
356
357        // Create the database object (and connect/select db)
358        $db = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, false);
359
360
361        // Do some DB type specific checks
362        switch ($db_type)
363        {
364                case 'mysql':
365                case 'mysqli':
366                        break;
367
368                case 'pgsql':
369                        // Make sure we are running at least PHP 4.3.0 (needed only for PostgreSQL)
370                        if (version_compare(PHP_VERSION, '4.3.0', '<'))
371                                error('Vous utilisez la version '.PHP_VERSION.'de PHP. PunBB 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.');
372                        break;
373
374                case 'sqlite':
375                        if (strtolower($db_prefix) == 'sqlite_')
376                                error('Le préfixe de tables \'sqlite_\' est réservé pour l\'utilisation du moteur SQLite. Veuillez choisir un préfixe différent.');
377                        break;
378        }
379
380
381        // Make sure PunBB isn't already installed
382        $result = $db->query('SELECT 1 FROM '.$db_prefix.'users WHERE id=1');
383        if ($db->num_rows($result))
384                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 PunBB est déjà installé ou qu\'un autre logiciel est installé et occupe un ou plusieurs des noms de tables nécéssaires à PunBB. Si vous souhaitez installer plusieurs copies de PunBB sur la même base de donnés, vous devez choisir des préfixes de tables différents.');
385
386
387        // Create all tables
388        switch ($db_type)
389        {
390                case 'mysql':
391                case 'mysqli':
392                        $sql = 'CREATE TABLE '.$db_prefix."bans (
393                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
394                                        username VARCHAR(200),
395                                        ip VARCHAR(255),
396                                        email VARCHAR(50),
397                                        message VARCHAR(255),
398                                        expire INT(10) UNSIGNED,
399                                        PRIMARY KEY (id)
400                                        ) TYPE=MyISAM;";
401                        break;
402
403                case 'pgsql':
404                        $db->start_transaction();
405
406                        $sql = 'CREATE TABLE '.$db_prefix."bans (
407                                        id SERIAL,
408                                        username VARCHAR(200),
409                                        ip VARCHAR(255),
410                                        email VARCHAR(50),
411                                        message VARCHAR(255),
412                                        expire INT,
413                                        PRIMARY KEY (id)
414                                        )";
415                        break;
416
417                case 'sqlite':
418                        $db->start_transaction();
419
420                        $sql = 'CREATE TABLE '.$db_prefix."bans (
421                                        id INTEGER NOT NULL,
422                                        username VARCHAR(200),
423                                        ip  VARCHAR(255),
424                                        email VARCHAR(50),
425                                        message VARCHAR(255),
426                                        expire INTEGER,
427                                        PRIMARY KEY (id)
428                                        )";
429                        break;
430                       
431               
432                default: 
433                        error('\''.$db_type.'\' n\'est pas un type de base de données correct.'); 
434
435        }
436
437        $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());
438
439
440        switch ($db_type)
441        {
442                case 'mysql':
443                case 'mysqli':
444                        $sql = 'CREATE TABLE '.$db_prefix."categories (
445                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
446                                        cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
447                                        disp_position INT(10) NOT NULL DEFAULT 0,
448                                        PRIMARY KEY (id)
449                                        ) TYPE=MyISAM;";
450                        break;
451
452                case 'pgsql':
453                        $sql = 'CREATE TABLE '.$db_prefix."categories (
454                                        id SERIAL,
455                                        cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
456                                        disp_position INT NOT NULL DEFAULT 0,
457                                        PRIMARY KEY (id)
458                                        )";
459                        break;
460
461                case 'sqlite':
462                        $sql = 'CREATE TABLE '.$db_prefix."categories (
463                                        id INTEGER NOT NULL,
464                                        cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
465                                        disp_position INTEGER NOT NULL DEFAULT 0,
466                                        PRIMARY KEY (id)
467                                        )";
468                        break;
469        }
470
471        $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());
472
473
474
475        switch ($db_type)
476        {
477                case 'mysql':
478                case 'mysqli':
479                        $sql = 'CREATE TABLE '.$db_prefix."censoring (
480                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
481                                        search_for VARCHAR(60) NOT NULL DEFAULT '',
482                                        replace_with VARCHAR(60) NOT NULL DEFAULT '',
483                                        PRIMARY KEY (id)
484                                        ) TYPE=MyISAM;";
485                        break;
486
487                case 'pgsql':
488                        $sql = 'CREATE TABLE '.$db_prefix."censoring (
489                                        id SERIAL,
490                                        search_for VARCHAR(60) NOT NULL DEFAULT '',
491                                        replace_with VARCHAR(60) NOT NULL DEFAULT '',
492                                        PRIMARY KEY (id)
493                                        )";
494                        break;
495
496                case 'sqlite':
497                        $sql = 'CREATE TABLE '.$db_prefix."censoring (
498                                        id INTEGER NOT NULL,
499                                        search_for VARCHAR(60) NOT NULL DEFAULT '',
500                                        replace_with VARCHAR(60) NOT NULL DEFAULT '',
501                                        PRIMARY KEY (id)
502                                        )";
503                        break;
504        }
505
506        $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());
507
508
509
510        switch ($db_type)
511        {
512                case 'mysql':
513                case 'mysqli':
514                        $sql = 'CREATE TABLE '.$db_prefix."config (
515                                        conf_name VARCHAR(255) NOT NULL DEFAULT '',
516                                        conf_value TEXT,
517                                        PRIMARY KEY (conf_name)
518                                        ) TYPE=MyISAM;";
519                        break;
520
521                case 'pgsql':
522                        $sql = 'CREATE TABLE '.$db_prefix."config (
523                                        conf_name VARCHAR(255) NOT NULL DEFAULT '',
524                                        conf_value TEXT,
525                                        PRIMARY KEY (conf_name)
526                                        )";
527                        break;
528
529                case 'sqlite':
530                        $sql = 'CREATE TABLE '.$db_prefix."config (
531                                        conf_name VARCHAR(255) NOT NULL DEFAULT '',
532                                        conf_value TEXT,
533                                        PRIMARY KEY (conf_name)
534                                        )";
535                        break;
536        }
537
538        $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());
539
540
541
542        switch ($db_type)
543        {
544                case 'mysql':
545                case 'mysqli':
546                        $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
547                                        group_id INT(10) NOT NULL DEFAULT 0,
548                                        forum_id INT(10) NOT NULL DEFAULT 0,
549                                        read_forum TINYINT(1) NOT NULL DEFAULT 1,
550                                        post_replies TINYINT(1) NOT NULL DEFAULT 1,
551                                        post_topics TINYINT(1) NOT NULL DEFAULT 1,
552                                        PRIMARY KEY (group_id, forum_id)
553                                        ) TYPE=MyISAM;";
554                        break;
555
556                case 'pgsql':
557                        $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
558                                        group_id INT NOT NULL DEFAULT 0,
559                                        forum_id INT NOT NULL DEFAULT 0,
560                                        read_forum SMALLINT NOT NULL DEFAULT 1,
561                                        post_replies SMALLINT NOT NULL DEFAULT 1,
562                                        post_topics SMALLINT NOT NULL DEFAULT 1,
563                                        PRIMARY KEY (group_id, forum_id)
564                                        )";
565                        break;
566
567                case 'sqlite':
568                        $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
569                                        group_id INTEGER NOT NULL DEFAULT 0,
570                                        forum_id INTEGER NOT NULL DEFAULT 0,
571                                        read_forum INTEGER NOT NULL DEFAULT 1,
572                                        post_replies INTEGER NOT NULL DEFAULT 1,
573                                        post_topics INTEGER NOT NULL DEFAULT 1,
574                                        PRIMARY KEY (group_id, forum_id)
575                                        )";
576                        break;
577        }
578
579        $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());
580
581
582
583        switch ($db_type)
584        {
585                case 'mysql':
586                case 'mysqli':
587                        $sql = 'CREATE TABLE '.$db_prefix."forums (
588                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
589                                        forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
590                                        forum_desc TEXT,
591                                        redirect_url VARCHAR(100),
592                                        moderators TEXT,
593                                        num_topics MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
594                                        num_posts MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
595                                        last_post INT(10) UNSIGNED,
596                                        last_post_id INT(10) UNSIGNED,
597                                        last_poster VARCHAR(200),
598                                        sort_by TINYINT(1) NOT NULL DEFAULT 0,
599                                        disp_position INT(10) NOT NULL DEFAULT 0,
600                                        cat_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
601                                        PRIMARY KEY (id)
602                                        ) TYPE=MyISAM;";
603                        break;
604
605                case 'pgsql':
606                        $sql = 'CREATE TABLE '.$db_prefix."forums (
607                                        id SERIAL,
608                                        forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
609                                        forum_desc TEXT,
610                                        redirect_url VARCHAR(100),
611                                        moderators TEXT,
612                                        num_topics INT NOT NULL DEFAULT 0,
613                                        num_posts INT NOT NULL DEFAULT 0,
614                                        last_post INT,
615                                        last_post_id INT,
616                                        last_poster VARCHAR(200),
617                                        sort_by SMALLINT NOT NULL DEFAULT 0,
618                                        disp_position INT NOT NULL DEFAULT 0,
619                                        cat_id INT NOT NULL DEFAULT 0,
620                                        PRIMARY KEY (id)
621                                        )";
622                        break;
623
624                case 'sqlite':
625                        $sql = 'CREATE TABLE '.$db_prefix."forums (
626                                        id INTEGER NOT NULL,
627                                        forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
628                                        forum_desc TEXT,
629                                        redirect_url VARCHAR(100),
630                                        moderators TEXT,
631                                        num_topics INTEGER NOT NULL DEFAULT 0,
632                                        num_posts INTEGER NOT NULL DEFAULT 0,
633                                        last_post INTEGER,
634                                        last_post_id INTEGER,
635                                        last_poster VARCHAR(200),
636                                        sort_by INTEGER NOT NULL DEFAULT 0,
637                                        disp_position INTEGER NOT NULL DEFAULT 0,
638                                        cat_id INTEGER NOT NULL DEFAULT 0,
639                                        PRIMARY KEY (id)
640                                        )";
641                        break;
642        }
643
644        $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());
645
646
647
648        switch ($db_type)
649        {
650                case 'mysql':
651                case 'mysqli':
652                        $sql = 'CREATE TABLE '.$db_prefix."groups (
653                                        g_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
654                                        g_title VARCHAR(50) NOT NULL DEFAULT '',
655                                        g_user_title VARCHAR(50),
656                                        g_read_board TINYINT(1) NOT NULL DEFAULT 1,
657                                        g_post_replies TINYINT(1) NOT NULL DEFAULT 1,
658                                        g_post_topics TINYINT(1) NOT NULL DEFAULT 1,
659                                        g_post_polls TINYINT(1) NOT NULL DEFAULT 1,
660                                        g_edit_posts TINYINT(1) NOT NULL DEFAULT 1,
661                                        g_delete_posts TINYINT(1) NOT NULL DEFAULT 1,
662                                        g_delete_topics TINYINT(1) NOT NULL DEFAULT 1,
663                                        g_set_title TINYINT(1) NOT NULL DEFAULT 1,
664                                        g_search TINYINT(1) NOT NULL DEFAULT 1,
665                                        g_search_users TINYINT(1) NOT NULL DEFAULT 1,
666                                        g_edit_subjects_interval SMALLINT(6) NOT NULL DEFAULT 300,
667                                        g_post_flood SMALLINT(6) NOT NULL DEFAULT 30,
668                                        g_search_flood SMALLINT(6) NOT NULL DEFAULT 30,
669                                        PRIMARY KEY (g_id)
670                                        ) TYPE=MyISAM;";
671                        break;
672
673                case 'pgsql':
674                        $sql = 'CREATE TABLE '.$db_prefix."groups (
675                                        g_id SERIAL,
676                                        g_title VARCHAR(50) NOT NULL DEFAULT '',
677                                        g_user_title VARCHAR(50),
678                                        g_read_board SMALLINT NOT NULL DEFAULT 1,
679                                        g_post_replies SMALLINT NOT NULL DEFAULT 1,
680                                        g_post_topics SMALLINT NOT NULL DEFAULT 1,
681                                        g_post_polls SMALLINT NOT NULL DEFAULT 1,
682                                        g_edit_posts SMALLINT NOT NULL DEFAULT 1,
683                                        g_delete_posts SMALLINT NOT NULL DEFAULT 1,
684                                        g_delete_topics SMALLINT NOT NULL DEFAULT 1,
685                                        g_set_title SMALLINT NOT NULL DEFAULT 1,
686                                        g_search SMALLINT NOT NULL DEFAULT 1,
687                                        g_search_users SMALLINT NOT NULL DEFAULT 1,
688                                        g_edit_subjects_interval SMALLINT NOT NULL DEFAULT 300,
689                                        g_post_flood SMALLINT NOT NULL DEFAULT 30,
690                                        g_search_flood SMALLINT NOT NULL DEFAULT 30,
691                                        PRIMARY KEY (g_id)
692                                        )";
693                        break;
694
695                case 'sqlite':
696                        $sql = 'CREATE TABLE '.$db_prefix."groups (
697                                        g_id INTEGER NOT NULL,
698                                        g_title VARCHAR(50) NOT NULL DEFAULT '',
699                                        g_user_title VARCHAR(50),
700                                        g_read_board INTEGER NOT NULL DEFAULT 1,
701                                        g_post_replies INTEGER NOT NULL DEFAULT 1,
702                                        g_post_topics INTEGER NOT NULL DEFAULT 1,
703                                        g_post_polls INTEGER NOT NULL DEFAULT 1,
704                                        g_edit_posts INTEGER NOT NULL DEFAULT 1,
705                                        g_delete_posts INTEGER NOT NULL DEFAULT 1,
706                                        g_delete_topics INTEGER NOT NULL DEFAULT 1,
707                                        g_set_title INTEGER NOT NULL DEFAULT 1,
708                                        g_search INTEGER NOT NULL DEFAULT 1,
709                                        g_search_users INTEGER NOT NULL DEFAULT 1,
710                                        g_edit_subjects_interval INTEGER NOT NULL DEFAULT 300,
711                                        g_post_flood INTEGER NOT NULL DEFAULT 30,
712                                        g_search_flood INTEGER NOT NULL DEFAULT 30,
713                                        PRIMARY KEY (g_id)
714                                        )";
715                        break;
716        }
717
718        $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());
719
720
721
722        switch ($db_type)
723        {
724                case 'mysql':
725                case 'mysqli':
726                        $sql = 'CREATE TABLE '.$db_prefix."online (
727                                        user_id INT(10) UNSIGNED NOT NULL DEFAULT 1,
728                                        ident VARCHAR(200) NOT NULL DEFAULT '',
729                                        logged INT(10) UNSIGNED NOT NULL DEFAULT 0,
730                                        idle TINYINT(1) NOT NULL DEFAULT 0
731                                        ) TYPE=HEAP;";
732                        break;
733
734                case 'pgsql':
735                        $sql = 'CREATE TABLE '.$db_prefix."online (
736                                        user_id INT NOT NULL DEFAULT 1,
737                                        ident VARCHAR(200) NOT NULL DEFAULT '',
738                                        logged INT NOT NULL DEFAULT 0,
739                                        idle SMALLINT NOT NULL DEFAULT 0
740                                        )";
741                        break;
742
743                case 'sqlite':
744                        $sql = 'CREATE TABLE '.$db_prefix."online (
745                                        user_id INTEGER NOT NULL DEFAULT 1,
746                                        ident VARCHAR(200) NOT NULL DEFAULT '',
747                                        logged INTEGER NOT NULL DEFAULT 0,
748                                        idle INTEGER NOT NULL DEFAULT 0
749                                        )";
750                        break;
751        }
752
753        $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());
754
755
756
757        switch ($db_type)
758        {
759                case 'mysql':
760                case 'mysqli':
761                        $sql = 'CREATE TABLE '.$db_prefix."posts (
762                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
763                                        poster VARCHAR(200) NOT NULL DEFAULT '',
764                                        poster_id INT(10) UNSIGNED NOT NULL DEFAULT 1,
765                                        poster_ip VARCHAR(15),
766                                        poster_email VARCHAR(50),
767                                        message TEXT NOT NULL DEFAULT '',
768                                        hide_smilies TINYINT(1) NOT NULL DEFAULT 0,
769                                        posted INT(10) UNSIGNED NOT NULL DEFAULT 0,
770                                        edited INT(10) UNSIGNED,
771                                        edited_by VARCHAR(200),
772                                        topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
773                                        PRIMARY KEY (id)
774                                        ) TYPE=MyISAM;";
775                        break;
776
777                case 'pgsql':
778                        $sql = 'CREATE TABLE '.$db_prefix."posts (
779                                        id SERIAL,
780                                        poster VARCHAR(200) NOT NULL DEFAULT '',
781                                        poster_id INT NOT NULL DEFAULT 1,
782                                        poster_ip VARCHAR(15),
783                                        poster_email VARCHAR(50),
784                                        message TEXT NOT NULL DEFAULT '',
785                                        hide_smilies SMALLINT NOT NULL DEFAULT 0,
786                                        posted INT NOT NULL DEFAULT 0,
787                                        edited INT,
788                                        edited_by VARCHAR(200),
789                                        topic_id INT NOT NULL DEFAULT 0,
790                                        PRIMARY KEY (id)
791                                        )";
792                        break;
793
794                case 'sqlite':
795                        $sql = 'CREATE TABLE '.$db_prefix."posts (
796                                        id INTEGER NOT NULL,
797                                        poster VARCHAR(200) NOT NULL DEFAULT '',
798                                        poster_id INTEGER NOT NULL DEFAULT 1,
799                                        poster_ip VARCHAR(15),
800                                        poster_email VARCHAR(50),
801                                        message TEXT NOT NULL DEFAULT '',
802                                        hide_smilies INTEGER NOT NULL DEFAULT 0,
803                                        posted INTEGER NOT NULL DEFAULT 0,
804                                        edited INTEGER,
805                                        edited_by VARCHAR(200),
806                                        topic_id INTEGER NOT NULL DEFAULT 0,
807                                        PRIMARY KEY (id)
808                                        )";
809                        break;
810        }
811
812        $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());
813
814
815
816        switch ($db_type)
817        {
818                case 'mysql':
819                case 'mysqli':
820                        $sql = 'CREATE TABLE '.$db_prefix."ranks (
821                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
822                                        rank VARCHAR(50) NOT NULL DEFAULT '',
823                                        min_posts MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
824                                        PRIMARY KEY (id)
825                                        ) TYPE=MyISAM;";
826                        break;
827
828                case 'pgsql':
829                        $sql = 'CREATE TABLE '.$db_prefix."ranks (
830                                        id SERIAL,
831                                        rank VARCHAR(50) NOT NULL DEFAULT '',
832                                        min_posts INT NOT NULL DEFAULT 0,
833                                        PRIMARY KEY (id)
834                                        )";
835                        break;
836
837                case 'sqlite':
838                        $sql = 'CREATE TABLE '.$db_prefix."ranks (
839                                        id INTEGER NOT NULL,
840                                        rank VARCHAR(50) NOT NULL DEFAULT '',
841                                        min_posts INTEGER NOT NULL DEFAULT 0,
842                                        PRIMARY KEY (id)
843                                        )";
844                        break;
845        }
846
847        $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());
848
849
850
851        switch ($db_type)
852        {
853                case 'mysql':
854                case 'mysqli':
855                        $sql = 'CREATE TABLE '.$db_prefix."reports (
856                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
857                                        post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
858                                        topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
859                                        forum_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
860                                        reported_by INT(10) UNSIGNED NOT NULL DEFAULT 0,
861                                        created INT(10) UNSIGNED NOT NULL DEFAULT 0,
862                                        message TEXT NOT NULL DEFAULT '',
863                                        zapped INT(10) UNSIGNED,
864                                        zapped_by INT(10) UNSIGNED,
865                                        PRIMARY KEY (id)
866                                        ) TYPE=MyISAM;";
867                        break;
868
869                case 'pgsql':
870                        $sql = 'CREATE TABLE '.$db_prefix."reports (
871                                        id SERIAL,
872                                        post_id INT NOT NULL DEFAULT 0,
873                                        topic_id INT NOT NULL DEFAULT 0,
874                                        forum_id INT NOT NULL DEFAULT 0,
875                                        reported_by INT NOT NULL DEFAULT 0,
876                                        created INT NOT NULL DEFAULT 0,
877                                        message TEXT NOT NULL DEFAULT '',
878                                        zapped INT,
879                                        zapped_by INT,
880                                        PRIMARY KEY (id)
881                                        )";
882                        break;
883
884                case 'sqlite':
885                        $sql = 'CREATE TABLE '.$db_prefix."reports (
886                                        id INTEGER NOT NULL,
887                                        post_id INTEGER NOT NULL DEFAULT 0,
888                                        topic_id INTEGER NOT NULL DEFAULT 0,
889                                        forum_id INTEGER NOT NULL DEFAULT 0,
890                                        reported_by INTEGER NOT NULL DEFAULT 0,
891                                        created INTEGER NOT NULL DEFAULT 0,
892                                        message TEXT NOT NULL DEFAULT '',
893                                        zapped INTEGER,
894                                        zapped_by INTEGER,
895                                        PRIMARY KEY (id)
896                                        )";
897                        break;
898        }
899
900        $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());
901
902
903
904        switch ($db_type)
905        {
906                case 'mysql':
907                case 'mysqli':
908                        $sql = 'CREATE TABLE '.$db_prefix."search_cache (
909                                        id INT(10) UNSIGNED NOT NULL DEFAULT 0,
910                                        ident VARCHAR(200) NOT NULL DEFAULT '',
911                                        search_data TEXT NOT NULL DEFAULT '',
912                                        PRIMARY KEY (id)
913                                        ) TYPE=MyISAM;";
914                        break;
915
916                case 'pgsql':
917                        $sql = 'CREATE TABLE '.$db_prefix."search_cache (
918                                        id INT NOT NULL DEFAULT 0,
919                                        ident VARCHAR(200) NOT NULL DEFAULT '',
920                                        search_data TEXT NOT NULL DEFAULT '',
921                                        PRIMARY KEY (id)
922                                        )";
923                        break;
924
925                case 'sqlite':
926                        $sql = 'CREATE TABLE '.$db_prefix."search_cache (
927                                        id INTEGER NOT NULL DEFAULT 0,
928                                        ident VARCHAR(200) NOT NULL DEFAULT '',
929                                        search_data TEXT NOT NULL DEFAULT '',
930                                        PRIMARY KEY (id)
931                                        )";
932                        break;
933        }
934
935        $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());
936
937
938
939        switch ($db_type)
940        {
941                case 'mysql':
942                case 'mysqli':
943                        $sql = 'CREATE TABLE '.$db_prefix."search_matches (
944                                        post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
945                                        word_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
946                                        subject_match TINYINT(1) NOT NULL DEFAULT 0
947                                        ) TYPE=MyISAM;";
948                        break;
949
950                case 'pgsql':
951                        $sql = 'CREATE TABLE '.$db_prefix."search_matches (
952                                        post_id INT NOT NULL DEFAULT 0,
953                                        word_id INT NOT NULL DEFAULT 0,
954                                        subject_match SMALLINT NOT NULL DEFAULT 0
955                                        )";
956                        break;
957
958                case 'sqlite':
959                        $sql = 'CREATE TABLE '.$db_prefix."search_matches (
960                                        post_id INTEGER NOT NULL DEFAULT 0,
961                                        word_id INTEGER NOT NULL DEFAULT 0,
962                                        subject_match INTEGER NOT NULL DEFAULT 0
963                                        )";
964                        break;
965        }
966
967        $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());
968
969
970
971        switch ($db_type)
972        {
973                case 'mysql':
974                case 'mysqli':
975                        $sql = 'CREATE TABLE '.$db_prefix."search_words (
976                                        id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
977                                        word VARCHAR(20) BINARY NOT NULL DEFAULT '',
978                                        PRIMARY KEY (word),
979                                        KEY ".$db_prefix."search_words_id_idx (id)
980                                        ) TYPE=MyISAM;";
981                        break;
982
983                case 'pgsql':
984                        $sql = 'CREATE TABLE '.$db_prefix."search_words (
985                                        id SERIAL,
986                                        word VARCHAR(20) NOT NULL DEFAULT '',
987                                        PRIMARY KEY (word)
988                                        )";
989                        break;
990
991                case 'sqlite':
992                        $sql = 'CREATE TABLE '.$db_prefix."search_words (
993                                        id INTEGER NOT NULL,
994                                        word VARCHAR(20) NOT NULL DEFAULT '',
995                                        PRIMARY KEY (id),
996                                        UNIQUE (word)
997                                        )";
998                        break;
999        }
1000
1001        $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());
1002
1003
1004
1005        switch ($db_type)
1006        {
1007                case 'mysql':
1008                case 'mysqli':
1009                        $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1010                                        user_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1011                                        topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1012                                        PRIMARY KEY (user_id, topic_id)
1013                                        ) TYPE=MyISAM;";
1014                        break;
1015
1016                case 'pgsql':
1017                        $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1018                                        user_id INT NOT NULL DEFAULT 0,
1019                                        topic_id INT NOT NULL DEFAULT 0,
1020                                        PRIMARY KEY (user_id, topic_id)
1021                                        )";
1022                        break;
1023
1024                case 'sqlite':
1025                        $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1026                                        user_id INTEGER NOT NULL DEFAULT 0,
1027                                        topic_id INTEGER NOT NULL DEFAULT 0,
1028                                        PRIMARY KEY (user_id, topic_id)
1029                                        )";
1030                        break;
1031        }
1032
1033        $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());
1034
1035
1036
1037        switch ($db_type)
1038        {
1039                case 'mysql':
1040                case 'mysqli':
1041                        $sql = 'CREATE TABLE '.$db_prefix."topics (
1042                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1043                                        poster VARCHAR(200) NOT NULL DEFAULT '',
1044                                        subject VARCHAR(255) NOT NULL DEFAULT '',
1045                                        posted INT(10) UNSIGNED NOT NULL DEFAULT 0,
1046                                        last_post INT(10) UNSIGNED NOT NULL DEFAULT 0,
1047                                        last_post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1048                                        last_poster VARCHAR(200),
1049                                        num_views MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
1050                                        num_replies MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
1051                                        closed TINYINT(1) NOT NULL DEFAULT 0,
1052                                        sticky TINYINT(1) NOT NULL DEFAULT 0,
1053                                        moved_to INT(10) UNSIGNED,
1054                                        forum_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1055                                        PRIMARY KEY (id)
1056                                        ) TYPE=MyISAM;";
1057                        break;
1058
1059                case 'pgsql':
1060                        $sql = 'CREATE TABLE '.$db_prefix."topics (
1061                                        id SERIAL,
1062                                        poster VARCHAR(200) NOT NULL DEFAULT '',
1063                                        subject VARCHAR(255) NOT NULL DEFAULT '',
1064                                        posted INT NOT NULL DEFAULT 0,
1065                                        last_post INT NOT NULL DEFAULT 0,
1066                                        last_post_id INT NOT NULL DEFAULT 0,
1067                                        last_poster VARCHAR(200),
1068                                        num_views INT NOT NULL DEFAULT 0,
1069                                        num_replies INT NOT NULL DEFAULT 0,
1070                                        closed SMALLINT NOT NULL DEFAULT 0,
1071                                        sticky SMALLINT NOT NULL DEFAULT 0,
1072                                        moved_to INT,
1073                                        forum_id INT NOT NULL DEFAULT 0,
1074                                        PRIMARY KEY (id)
1075                                        )";
1076                        break;
1077
1078                case 'sqlite':
1079                        $sql = 'CREATE TABLE '.$db_prefix."topics (
1080                                        id INTEGER NOT NULL,
1081                                        poster VARCHAR(200) NOT NULL DEFAULT '',
1082                                        subject VARCHAR(255) NOT NULL DEFAULT '',
1083                                        posted INTEGER NOT NULL DEFAULT 0,
1084                                        last_post INTEGER NOT NULL DEFAULT 0,
1085                                        last_post_id INTEGER NOT NULL DEFAULT 0,
1086                                        last_poster VARCHAR(200),
1087                                        num_views INTEGER NOT NULL DEFAULT 0,
1088                                        num_replies INTEGER NOT NULL DEFAULT 0,
1089                                        closed INTEGER NOT NULL DEFAULT 0,
1090                                        sticky INTEGER NOT NULL DEFAULT 0,
1091                                        moved_to INTEGER,
1092                                        forum_id INTEGER NOT NULL DEFAULT 0,
1093                                        PRIMARY KEY (id)
1094                                        )";
1095                        break;
1096        }
1097
1098        $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());
1099
1100
1101
1102        switch ($db_type)
1103        {
1104                case 'mysql':
1105                case 'mysqli':
1106                        $sql = 'CREATE TABLE '.$db_prefix."users (
1107                                        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1108                                        group_id INT(10) UNSIGNED NOT NULL DEFAULT 4,
1109                                        username VARCHAR(200) NOT NULL DEFAULT '',
1110                                        password VARCHAR(40) NOT NULL DEFAULT '',
1111                                        email VARCHAR(50) NOT NULL DEFAULT '',
1112                                        title VARCHAR(50),
1113                                        realname VARCHAR(40),
1114                                        url VARCHAR(100),
1115                                        jabber VARCHAR(75),
1116                                        icq VARCHAR(12),
1117                                        msn VARCHAR(50),
1118                                        aim VARCHAR(30),
1119                                        yahoo VARCHAR(30),
1120                                        location VARCHAR(30),
1121                                        use_avatar TINYINT(1) NOT NULL DEFAULT 0,
1122                                        signature TEXT,
1123                                        disp_topics TINYINT(3) UNSIGNED,
1124                                        disp_posts TINYINT(3) UNSIGNED,
1125                                        email_setting TINYINT(1) NOT NULL DEFAULT 1,
1126                                        save_pass TINYINT(1) NOT NULL DEFAULT 1,
1127                                        notify_with_post TINYINT(1) NOT NULL DEFAULT 0,
1128                                        show_smilies TINYINT(1) NOT NULL DEFAULT 1,
1129                                        show_img TINYINT(1) NOT NULL DEFAULT 1,
1130                                        show_img_sig TINYINT(1) NOT NULL DEFAULT 1,
1131                                        show_avatars TINYINT(1) NOT NULL DEFAULT 1,
1132                                        show_sig TINYINT(1) NOT NULL DEFAULT 1,
1133                                        timezone FLOAT NOT NULL DEFAULT 0,
1134                                        language VARCHAR(25) NOT NULL DEFAULT 'English',
1135                                        style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1136                                        num_posts INT(10) UNSIGNED NOT NULL DEFAULT 0,
1137                                        last_post INT(10) UNSIGNED,
1138                                        registered INT(10) UNSIGNED NOT NULL DEFAULT 0,
1139                                        registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1140                                        last_visit INT(10) UNSIGNED NOT NULL DEFAULT 0,
1141                                        admin_note VARCHAR(30),
1142                                        activate_string VARCHAR(50),
1143                                        activate_key VARCHAR(8),
1144                                        PRIMARY KEY (id)
1145                                        ) TYPE=MyISAM;";
1146                        break;
1147
1148                case 'pgsql':
1149                        $sql = 'CREATE TABLE '.$db_prefix."users (
1150                                        id SERIAL,
1151                                        group_id INT NOT NULL DEFAULT 4,
1152                                        username VARCHAR(200) NOT NULL DEFAULT '',
1153                                        password VARCHAR(40) NOT NULL DEFAULT '',
1154                                        email VARCHAR(50) NOT NULL DEFAULT '',
1155                                        title VARCHAR(50),
1156                                        realname VARCHAR(40),
1157                                        url VARCHAR(100),
1158                                        jabber VARCHAR(75),
1159                                        icq VARCHAR(12),
1160                                        msn VARCHAR(50),
1161                                        aim VARCHAR(30),
1162                                        yahoo VARCHAR(30),
1163                                        location VARCHAR(30),
1164                                        use_avatar SMALLINT NOT NULL DEFAULT 0,
1165                                        signature TEXT,
1166                                        disp_topics SMALLINT,
1167                                        disp_posts SMALLINT,
1168                                        email_setting SMALLINT NOT NULL DEFAULT 1,
1169                                        save_pass SMALLINT NOT NULL DEFAULT 1,
1170                                        notify_with_post SMALLINT NOT NULL DEFAULT 0,
1171                                        show_smilies SMALLINT NOT NULL DEFAULT 1,
1172                                        show_img SMALLINT NOT NULL DEFAULT 1,
1173                                        show_img_sig SMALLINT NOT NULL DEFAULT 1,
1174                                        show_avatars SMALLINT NOT NULL DEFAULT 1,
1175                                        show_sig SMALLINT NOT NULL DEFAULT 1,
1176                                        timezone REAL NOT NULL DEFAULT 0,
1177                                        language VARCHAR(25) NOT NULL DEFAULT 'English',
1178                                        style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1179                                        num_posts INT NOT NULL DEFAULT 0,
1180                                        last_post INT,
1181                                        registered INT NOT NULL DEFAULT 0,
1182                                        registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1183                                        last_visit INT NOT NULL DEFAULT 0,
1184                                        admin_note VARCHAR(30),
1185                                        activate_string VARCHAR(50),
1186                                        activate_key VARCHAR(8),
1187                                        PRIMARY KEY (id)
1188                                        )";
1189                        break;
1190
1191                case 'sqlite':
1192                        $sql = 'CREATE TABLE '.$db_prefix."users (
1193                                        id INTEGER NOT NULL,
1194                                        group_id INTEGER NOT NULL DEFAULT 4,
1195                                        username VARCHAR(200) NOT NULL DEFAULT '',
1196                                        password VARCHAR(40) NOT NULL DEFAULT '',
1197                                        email VARCHAR(50) NOT NULL DEFAULT '',
1198                                        title VARCHAR(50),
1199                                        realname VARCHAR(40),
1200                                        url VARCHAR(100),
1201                                        jabber VARCHAR(75),
1202                                        icq VARCHAR(12),
1203                                        msn VARCHAR(50),
1204                                        aim VARCHAR(30),
1205                                        yahoo VARCHAR(30),
1206                                        location VARCHAR(30),
1207                                        use_avatar INTEGER NOT NULL DEFAULT 0,
1208                                        signature TEXT,
1209                                        disp_topics INTEGER,
1210                                        disp_posts INTEGER,
1211                                        email_setting INTEGER NOT NULL DEFAULT 1,
1212                                        save_pass INTEGER NOT NULL DEFAULT 1,
1213                                        notify_with_post INTEGER NOT NULL DEFAULT 0,
1214                                        show_smilies INTEGER NOT NULL DEFAULT 1,
1215                                        show_img INTEGER NOT NULL DEFAULT 1,
1216                                        show_img_sig INTEGER NOT NULL DEFAULT 1,
1217                                        show_avatars INTEGER NOT NULL DEFAULT 1,
1218                                        show_sig INTEGER NOT NULL DEFAULT 1,
1219                                        timezone FLOAT NOT NULL DEFAULT 0,
1220                                        language VARCHAR(25) NOT NULL DEFAULT 'English',
1221                                        style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1222                                        num_posts INTEGER NOT NULL DEFAULT 0,
1223                                        last_post INTEGER,
1224                                        registered INTEGER NOT NULL DEFAULT 0,
1225                                        registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1226                                        last_visit INTEGER NOT NULL DEFAULT 0,
1227                                        admin_note VARCHAR(30),
1228                                        activate_string VARCHAR(50),
1229                                        activate_key VARCHAR(8),
1230                                        PRIMARY KEY (id)
1231                                        )";
1232                        break;
1233        }
1234
1235        $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());
1236
1237
1238        // Add some indexes
1239        switch ($db_type)
1240        {
1241                case 'mysql':
1242                case 'mysqli':
1243                        // We use MySQL's ALTER TABLE ... ADD INDEX syntax instead of CREATE INDEX to avoid problems with users lacking the INDEX privilege
1244                        $queries[] = 'ALTER TABLE '.$db_prefix.'online ADD INDEX '.$db_prefix.'online_user_id_idx(user_id)';
1245                        $queries[] = 'ALTER TABLE '.$db_prefix.'posts ADD INDEX '.$db_prefix.'posts_topic_id_idx(topic_id)';
1246                        $queries[] = 'ALTER TABLE '.$db_prefix.'posts ADD INDEX '.$db_prefix.'posts_multi_idx(poster_id, topic_id)';
1247                        $queries[] = 'ALTER TABLE '.$db_prefix.'reports ADD INDEX '.$db_prefix.'reports_zapped_idx(zapped)';
1248                        $queries[] = 'ALTER TABLE '.$db_prefix.'search_matches ADD INDEX '.$db_prefix.'search_matches_word_id_idx(word_id)';
1249                        $queries[] = 'ALTER TABLE '.$db_prefix.'search_matches ADD INDEX '.$db_prefix.'search_matches_post_id_idx(post_id)';
1250                        $queries[] = 'ALTER TABLE '.$db_prefix.'topics ADD INDEX '.$db_prefix.'topics_forum_id_idx(forum_id)';
1251                        $queries[] = 'ALTER TABLE '.$db_prefix.'topics ADD INDEX '.$db_prefix.'topics_moved_to_idx(moved_to)';
1252                        $queries[] = 'ALTER TABLE '.$db_prefix.'users ADD INDEX '.$db_prefix.'users_registered_idx(registered)';
1253                        $queries[] = 'ALTER TABLE '.$db_prefix.'search_cache ADD INDEX '.$db_prefix.'search_cache_ident_idx(ident(8))';
1254                        $queries[] = 'ALTER TABLE '.$db_prefix.'users ADD INDEX '.$db_prefix.'users_username_idx(username(8))';
1255                        break;
1256
1257                default:
1258                        $queries[] = 'CREATE INDEX '.$db_prefix.'online_user_id_idx ON '.$db_prefix.'online(user_id)';
1259                        $queries[] = 'CREATE INDEX '.$db_prefix.'posts_topic_id_idx ON '.$db_prefix.'posts(topic_id)';
1260                        $queries[] = 'CREATE INDEX '.$db_prefix.'posts_multi_idx ON '.$db_prefix.'posts(poster_id, topic_id)';
1261                        $queries[] = 'CREATE INDEX '.$db_prefix.'reports_zapped_idx ON '.$db_prefix.'reports(zapped)';
1262                        $queries[] = 'CREATE INDEX '.$db_prefix.'search_matches_word_id_idx ON '.$db_prefix.'search_matches(word_id)';
1263                        $queries[] = 'CREATE INDEX '.$db_prefix.'search_matches_post_id_idx ON '.$db_prefix.'search_matches(post_id)';
1264                        $queries[] = 'CREATE INDEX '.$db_prefix.'topics_forum_id_idx ON '.$db_prefix.'topics(forum_id)';
1265                        $queries[] = 'CREATE INDEX '.$db_prefix.'topics_moved_to_idx ON '.$db_prefix.'topics(moved_to)';
1266                        $queries[] = 'CREATE INDEX '.$db_prefix.'users_registered_idx ON '.$db_prefix.'users(registered)';
1267                        $queries[] = 'CREATE INDEX '.$db_prefix.'users_username_idx ON '.$db_prefix.'users(username)';
1268                        $queries[] = 'CREATE INDEX '.$db_prefix.'search_cache_ident_idx ON '.$db_prefix.'search_cache(ident)';
1269                        $queries[] = 'CREATE INDEX '.$db_prefix.'search_words_id_idx ON '.$db_prefix.'search_words(id)';
1270                        break;
1271        }
1272
1273        @reset($queries);
1274        while (list(, $sql) = @each($queries))
1275                $db->query($sql) or error('Impossible de créer les index. Veuillez vérifier vos réglages et essayer à nouveau.',  __FILE__, __LINE__, $db->error());
1276
1277
1278        // Insert the four preset groups
1279        $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());
1280        $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());
1281        $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());
1282        $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());
1283
1284
1285        // Insert config data
1286        $config = array(
1287                'o_cur_version'                         => "'$punbb_version'",
1288                'o_cur_version_fr'                      => "'$punbb_version_fr'",
1289                'o_board_title'                         => "'Mon forum PunBB'",
1290                'o_board_desc'                          => "'Malheureusement personne ne peut vous dire ce que PunBB est - vous devez le voir par vous-même.'",
1291                'o_server_timezone'                     => "'0'",
1292                'o_time_format'                         => "'H:i:s'",
1293                'o_date_format'                         => "'d-m-Y'",
1294                'o_timeout_visit'                       => "'600'",
1295                'o_timeout_online'                      => "'300'",
1296                'o_redirect_delay'                      => "'1'",
1297                'o_show_version'                        => "'0'",
1298                'o_show_user_info'                      => "'1'",
1299                'o_show_post_count'                     => "'1'",
1300                'o_smilies'                                     => "'1'",
1301                'o_smilies_sig'                         => "'1'",
1302                'o_make_links'                          => "'1'",
1303                'o_default_lang'                        => "'French'",
1304                'o_default_style'                       => "'Oxygen'",
1305                'o_default_user_group'          => "'4'",
1306                'o_topic_review'                        => "'15'",
1307                'o_disp_topics_default'         => "'30'",
1308                'o_disp_posts_default'          => "'25'",
1309                'o_indent_num_spaces'           => "'4'",
1310                'o_quickpost'                           => "'1'",
1311                'o_users_online'                        => "'1'",
1312                'o_censoring'                           => "'0'",
1313                'o_ranks'                                       => "'1'",
1314                'o_show_dot'                            => "'0'",
1315                'o_quickjump'                           => "'1'",
1316                'o_gzip'                                        => "'0'",
1317                'o_additional_navlinks'         => "''",
1318                'o_report_method'                       => "'0'",
1319                'o_regs_report'                         => "'0'",
1320                'o_mailing_list'                        => "'$email'",
1321                'o_avatars'                                     => "'1'",
1322                'o_avatars_dir'                         => "'img/avatars'",
1323                'o_avatars_width'                       => "'60'",
1324                'o_avatars_height'                      => "'60'",
1325                'o_avatars_size'                        => "'10240'",
1326                'o_search_all_forums'           => "'1'",
1327                'o_base_url'                            => "'$base_url'",
1328                'o_admin_email'                         => "'$email'",
1329                'o_webmaster_email'                     => "'$email'",
1330                'o_subscriptions'                       => "'1'",
1331                'o_smtp_host'                           => "NULL",
1332                'o_smtp_user'                           => "NULL",
1333                'o_smtp_pass'                           => "NULL",
1334                'o_regs_allow'                          => "'1'",
1335                'o_regs_verify'                         => "'0'",
1336                'o_announcement'                        => "'0'",
1337                'o_announcement_message'        => "'Saisissez votre annonce ici.'",
1338                'o_rules'                                       => "'0'",
1339                'o_rules_message'                       => "'Saisissez vos rÚgles ici.'",
1340                'o_maintenance'                         => "'0'",
1341                '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'",
1342                'p_mod_edit_users'                      => "'1'",
1343                'p_mod_rename_users'            => "'0'",
1344                'p_mod_change_passwords'        => "'0'",
1345                'p_mod_ban_users'                       => "'0'",
1346                'p_message_bbcode'                      => "'1'",
1347                'p_message_img_tag'                     => "'1'",
1348                'p_message_all_caps'            => "'1'",
1349                'p_subject_all_caps'            => "'1'",
1350                'p_sig_all_caps'                        => "'1'",
1351                'p_sig_bbcode'                          => "'1'",
1352                'p_sig_img_tag'                         => "'0'",
1353                'p_sig_length'                          => "'400'",
1354                'p_sig_lines'                           => "'4'",
1355                'p_allow_banned_email'          => "'1'",
1356                'p_allow_dupe_email'            => "'0'",
1357                'p_force_guest_email'           => "'1'"
1358        );
1359
1360        while (list($conf_name, $conf_value) = @each($config))
1361        {
1362                $db->query('INSERT INTO '.$db_prefix."config (conf_name, conf_value) VALUES('$conf_name', $conf_value)")
1363                        or error('Impossible d\'insérer dans la table '.$db_prefix.'config. Veuillez vérifier votre configuration et essayez à nouveau.');
1364        }
1365
1366
1367        $now = time();
1368        // Insert guest and first admin user
1369        $db->query('INSERT INTO '.$db_prefix."users (group_id, username, password, email) VALUES(3, 'Invité', 'Invité', 'Invité')")
1370                or error('Impossible d\'ajouter l\'utilisateur "invité".');
1371
1372        $db->query('INSERT INTO '.$db_prefix."users (group_id, username, password, email, num_posts, last_post, registered, registration_ip, last_visit) VALUES(1, '".$db->escape($username)."', '".pun_hash($password1)."', '$email', 1, ".$now.", ".$now.", '127.0.0.1', ".$now.')')
1373                or error('Impossible d\'ajouter le compte administrateur.');
1374
1375        // Insert some other default data
1376        $db->query('INSERT INTO '.$db_prefix."categories (cat_name, disp_position) VALUES('Catégorie test', 1)")
1377                or error('Impossible d\'insérer dans la table '.$db_prefix.'categories. Veuillez vérifier votre configuration et essayez à nouveau.');
1378
1379        $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)")
1380                or error('Impossible d\'insérer dans la table '.$db_prefix.'forums. Veuillez vérifier votre configuration et essayez à nouveau.');
1381
1382        $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)")
1383                or error('Impossible d\'insérer dans la table '.$db_prefix.'topics. Veuillez vérifier votre configuration et essayez à nouveau.');
1384
1385        $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 la faire), l\'installation de PunBB semble avoir fonctionnée ! Maintenant identifiez vous au panneau de contrÃŽle d\'administration pour configurer vos forums.', ".$now.', 1)')
1386                or error('Impossible d\'insérer dans la table '.$db_prefix.'posts. Veuillez vérifier votre configuration et essayez à nouveau.');
1387
1388        $db->query('INSERT INTO '.$db_prefix."ranks (rank, min_posts) VALUES('Nouveau membre', 0)")
1389                or error('Impossible d\'insérer dans la table '.$db_prefix.'ranks. Veuillez vérifier votre configuration et essayez à nouveau.');
1390
1391        $db->query('INSERT INTO '.$db_prefix."ranks (rank, min_posts) VALUES('Membre', 10)")
1392                or error('Impossible d\'insérer dans la table '.$db_prefix.'ranks. Veuillez vérifier votre configuration et essayez à nouveau.');
1393
1394
1395        if ($db_type == 'pgsql' || $db_type == 'sqlite')
1396                $db->end_transaction();
1397
1398
1399
1400        $alerts = '';
1401        // Check if the cache directory is writable
1402        if (!@is_writable('./cache/'))
1403                $alerts .= '<p style="font-size: 1.1em"><span style="color: #C03000"><strong>Le répertoire du cache n\'est actuellement pas inscriptible !</strong></span> Afin que PunBB fonctionne corretement, le répertoire nommé <em>cache</em> doit être inscriptible par PHP. Utilisez chmod pour régler les permissions appropriée à ce répertoire. Si vous avez un doute, chmod 0777.</p>';
1404
1405        // Check if default avatar directory is writable
1406        if (!@is_writable('./img/avatars/'))
1407                $alerts .= '<p style="font-size: 1.1em"><span style="color: #C03000"><strong>Le répertoire des avatars n\'est actuellement pas inscriptible !</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. Utilisez chmod pour régler les permissions appropriée à ce répertoire. Si vous avez un doute, chmod 0777.</p>';
1408
1409
1410        /// Display config.php and give further instructions
1411        $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 = '."'punbb_cookie';\n".'$cookie_domain = '."'';\n".'$cookie_path = '."'/';\n".'$cookie_secure = 0;'."\n".'$cookie_seed = \''.substr(md5(time()), -8)."';\n\ndefine('PUN', 1);";
1412
1413
1414?>
1415<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1416
1417<html>
1418<head>
1419<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
1420<title>Installation de PunBB</title>
1421<link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
1422</head>
1423<body>
1424
1425<div id="puninstall" style="margin: auto 10% auto 10%">
1426<div class="pun">
1427
1428<div class="blockform">
1429        <h2>Instructions finales</h2>
1430        <div class="box">
1431                <div class="fakeform">
1432                        <div class="inform">
1433                                <div class="forminfo">
1434                                        <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 PunBB</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>
1435<?php if ($alerts != ''): ?>                                    <?php echo $alerts."\n" ?>
1436<?php endif; ?>                         </div>
1437                                <fieldset>
1438                                        <legend>Copiez ce contenu dans config.php</legend>
1439                                        <div class="infldset">
1440                                                <textarea cols="80" rows="20"><?php echo htmlspecialchars($config) ?></textarea>
1441                                        </div>
1442                                </fieldset>
1443                        </div>
1444                        <div class="inform">
1445                                <div class="forminfo">
1446                                        <p>Une fois que vous aurez créé config.php avec le contenu ci-dessus, PunBB sera installé !</p>
1447                                        <p><a href="index.php">Aller à l'index des forums</a></p>
1448                                </div>
1449                        </div>
1450                </div>
1451        </div>
1452</div>
1453
1454</div>
1455</div>
1456
1457</body>
1458</html>
1459<?php
1460
1461}
Note: See TracBrowser for help on using the repository browser.