[ Index ]
 

Code source de PunBB 1.2.16

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/upload/ -> install.php (source)

   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.16';
  28  $punbb_version_fr = '1.2.16';
  29  
  30  
  31  define('PUN_ROOT', './');
  32  if (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

  37  if (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 de pouvoir continuer l\'installation.');
  39  
  40  // Disable error reporting for uninitialized variables

  41  error_reporting(E_ALL);
  42  
  43  // Turn off PHP time limit

  44  @set_time_limit(0);
  45  
  46  
  47  if (!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  <!--
  79  function 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  }
 249  else
 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é&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      $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  
 433      $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());
 434  
 435  
 436      switch ($db_type)
 437      {
 438          case 'mysql':
 439          case 'mysqli':
 440              $sql = 'CREATE TABLE '.$db_prefix."categories (
 441                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 442                      cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
 443                      disp_position INT(10) NOT NULL DEFAULT 0,
 444                      PRIMARY KEY (id)
 445                      ) TYPE=MyISAM;";
 446              break;
 447  
 448          case 'pgsql':
 449              $sql = 'CREATE TABLE '.$db_prefix."categories (
 450                      id SERIAL,
 451                      cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
 452                      disp_position INT NOT NULL DEFAULT 0,
 453                      PRIMARY KEY (id)
 454                      )";
 455              break;
 456  
 457          case 'sqlite':
 458              $sql = 'CREATE TABLE '.$db_prefix."categories (
 459                      id INTEGER NOT NULL,
 460                      cat_name VARCHAR(80) NOT NULL DEFAULT 'New Category',
 461                      disp_position INTEGER NOT NULL DEFAULT 0,
 462                      PRIMARY KEY (id)
 463                      )";
 464              break;
 465      }
 466  
 467      $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());
 468  
 469  
 470  
 471      switch ($db_type)
 472      {
 473          case 'mysql':
 474          case 'mysqli':
 475              $sql = 'CREATE TABLE '.$db_prefix."censoring (
 476                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 477                      search_for VARCHAR(60) NOT NULL DEFAULT '',
 478                      replace_with VARCHAR(60) NOT NULL DEFAULT '',
 479                      PRIMARY KEY (id)
 480                      ) TYPE=MyISAM;";
 481              break;
 482  
 483          case 'pgsql':
 484              $sql = 'CREATE TABLE '.$db_prefix."censoring (
 485                      id SERIAL,
 486                      search_for VARCHAR(60) NOT NULL DEFAULT '',
 487                      replace_with VARCHAR(60) NOT NULL DEFAULT '',
 488                      PRIMARY KEY (id)
 489                      )";
 490              break;
 491  
 492          case 'sqlite':
 493              $sql = 'CREATE TABLE '.$db_prefix."censoring (
 494                      id INTEGER NOT NULL,
 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  
 502      $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());
 503  
 504  
 505  
 506      switch ($db_type)
 507      {
 508          case 'mysql':
 509          case 'mysqli':
 510              $sql = 'CREATE TABLE '.$db_prefix."config (
 511                      conf_name VARCHAR(255) NOT NULL DEFAULT '',
 512                      conf_value TEXT,
 513                      PRIMARY KEY (conf_name)
 514                      ) TYPE=MyISAM;";
 515              break;
 516  
 517          case 'pgsql':
 518              $sql = 'CREATE TABLE '.$db_prefix."config (
 519                      conf_name VARCHAR(255) NOT NULL DEFAULT '',
 520                      conf_value TEXT,
 521                      PRIMARY KEY (conf_name)
 522                      )";
 523              break;
 524  
 525          case 'sqlite':
 526              $sql = 'CREATE TABLE '.$db_prefix."config (
 527                      conf_name VARCHAR(255) NOT NULL DEFAULT '',
 528                      conf_value TEXT,
 529                      PRIMARY KEY (conf_name)
 530                      )";
 531              break;
 532      }
 533  
 534      $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());
 535  
 536  
 537  
 538      switch ($db_type)
 539      {
 540          case 'mysql':
 541          case 'mysqli':
 542              $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
 543                      group_id INT(10) NOT NULL DEFAULT 0,
 544                      forum_id INT(10) NOT NULL DEFAULT 0,
 545                      read_forum TINYINT(1) NOT NULL DEFAULT 1,
 546                      post_replies TINYINT(1) NOT NULL DEFAULT 1,
 547                      post_topics TINYINT(1) NOT NULL DEFAULT 1,
 548                      PRIMARY KEY (group_id, forum_id)
 549                      ) TYPE=MyISAM;";
 550              break;
 551  
 552          case 'pgsql':
 553              $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
 554                      group_id INT NOT NULL DEFAULT 0,
 555                      forum_id INT NOT NULL DEFAULT 0,
 556                      read_forum SMALLINT NOT NULL DEFAULT 1,
 557                      post_replies SMALLINT NOT NULL DEFAULT 1,
 558                      post_topics SMALLINT NOT NULL DEFAULT 1,
 559                      PRIMARY KEY (group_id, forum_id)
 560                      )";
 561              break;
 562  
 563          case 'sqlite':
 564              $sql = 'CREATE TABLE '.$db_prefix."forum_perms (
 565                      group_id INTEGER NOT NULL DEFAULT 0,
 566                      forum_id INTEGER NOT NULL DEFAULT 0,
 567                      read_forum INTEGER NOT NULL DEFAULT 1,
 568                      post_replies INTEGER NOT NULL DEFAULT 1,
 569                      post_topics INTEGER NOT NULL DEFAULT 1,
 570                      PRIMARY KEY (group_id, forum_id)
 571                      )";
 572              break;
 573      }
 574  
 575      $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());
 576  
 577  
 578  
 579      switch ($db_type)
 580      {
 581          case 'mysql':
 582          case 'mysqli':
 583              $sql = 'CREATE TABLE '.$db_prefix."forums (
 584                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 585                      forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
 586                      forum_desc TEXT,
 587                      redirect_url VARCHAR(100),
 588                      moderators TEXT,
 589                      num_topics MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
 590                      num_posts MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
 591                      last_post INT(10) UNSIGNED,
 592                      last_post_id INT(10) UNSIGNED,
 593                      last_poster VARCHAR(200),
 594                      sort_by TINYINT(1) NOT NULL DEFAULT 0,
 595                      disp_position INT(10) NOT NULL DEFAULT 0,
 596                      cat_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 597                      PRIMARY KEY (id)
 598                      ) TYPE=MyISAM;";
 599              break;
 600  
 601          case 'pgsql':
 602              $sql = 'CREATE TABLE '.$db_prefix."forums (
 603                      id SERIAL,
 604                      forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
 605                      forum_desc TEXT,
 606                      redirect_url VARCHAR(100),
 607                      moderators TEXT,
 608                      num_topics INT NOT NULL DEFAULT 0,
 609                      num_posts INT NOT NULL DEFAULT 0,
 610                      last_post INT,
 611                      last_post_id INT,
 612                      last_poster VARCHAR(200),
 613                      sort_by SMALLINT NOT NULL DEFAULT 0,
 614                      disp_position INT NOT NULL DEFAULT 0,
 615                      cat_id INT NOT NULL DEFAULT 0,
 616                      PRIMARY KEY (id)
 617                      )";
 618              break;
 619  
 620          case 'sqlite':
 621              $sql = 'CREATE TABLE '.$db_prefix."forums (
 622                      id INTEGER NOT NULL,
 623                      forum_name VARCHAR(80) NOT NULL DEFAULT 'New forum',
 624                      forum_desc TEXT,
 625                      redirect_url VARCHAR(100),
 626                      moderators TEXT,
 627                      num_topics INTEGER NOT NULL DEFAULT 0,
 628                      num_posts INTEGER NOT NULL DEFAULT 0,
 629                      last_post INTEGER,
 630                      last_post_id INTEGER,
 631                      last_poster VARCHAR(200),
 632                      sort_by INTEGER NOT NULL DEFAULT 0,
 633                      disp_position INTEGER NOT NULL DEFAULT 0,
 634                      cat_id INTEGER NOT NULL DEFAULT 0,
 635                      PRIMARY KEY (id)
 636                      )";
 637              break;
 638      }
 639  
 640      $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());
 641  
 642  
 643  
 644      switch ($db_type)
 645      {
 646          case 'mysql':
 647          case 'mysqli':
 648              $sql = 'CREATE TABLE '.$db_prefix."groups (
 649                      g_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 650                      g_title VARCHAR(50) NOT NULL DEFAULT '',
 651                      g_user_title VARCHAR(50),
 652                      g_read_board TINYINT(1) NOT NULL DEFAULT 1,
 653                      g_post_replies TINYINT(1) NOT NULL DEFAULT 1,
 654                      g_post_topics TINYINT(1) NOT NULL DEFAULT 1,
 655                      g_post_polls TINYINT(1) NOT NULL DEFAULT 1,
 656                      g_edit_posts TINYINT(1) NOT NULL DEFAULT 1,
 657                      g_delete_posts TINYINT(1) NOT NULL DEFAULT 1,
 658                      g_delete_topics TINYINT(1) NOT NULL DEFAULT 1,
 659                      g_set_title TINYINT(1) NOT NULL DEFAULT 1,
 660                      g_search TINYINT(1) NOT NULL DEFAULT 1,
 661                      g_search_users TINYINT(1) NOT NULL DEFAULT 1,
 662                      g_edit_subjects_interval SMALLINT(6) NOT NULL DEFAULT 300,
 663                      g_post_flood SMALLINT(6) NOT NULL DEFAULT 30,
 664                      g_search_flood SMALLINT(6) NOT NULL DEFAULT 30,
 665                      PRIMARY KEY (g_id)
 666                      ) TYPE=MyISAM;";
 667              break;
 668  
 669          case 'pgsql':
 670              $sql = 'CREATE TABLE '.$db_prefix."groups (
 671                      g_id SERIAL,
 672                      g_title VARCHAR(50) NOT NULL DEFAULT '',
 673                      g_user_title VARCHAR(50),
 674                      g_read_board SMALLINT NOT NULL DEFAULT 1,
 675                      g_post_replies SMALLINT NOT NULL DEFAULT 1,
 676                      g_post_topics SMALLINT NOT NULL DEFAULT 1,
 677                      g_post_polls SMALLINT NOT NULL DEFAULT 1,
 678                      g_edit_posts SMALLINT NOT NULL DEFAULT 1,
 679                      g_delete_posts SMALLINT NOT NULL DEFAULT 1,
 680                      g_delete_topics SMALLINT NOT NULL DEFAULT 1,
 681                      g_set_title SMALLINT NOT NULL DEFAULT 1,
 682                      g_search SMALLINT NOT NULL DEFAULT 1,
 683                      g_search_users SMALLINT NOT NULL DEFAULT 1,
 684                      g_edit_subjects_interval SMALLINT NOT NULL DEFAULT 300,
 685                      g_post_flood SMALLINT NOT NULL DEFAULT 30,
 686                      g_search_flood SMALLINT NOT NULL DEFAULT 30,
 687                      PRIMARY KEY (g_id)
 688                      )";
 689              break;
 690  
 691          case 'sqlite':
 692              $sql = 'CREATE TABLE '.$db_prefix."groups (
 693                      g_id INTEGER NOT NULL,
 694                      g_title VARCHAR(50) NOT NULL DEFAULT '',
 695                      g_user_title VARCHAR(50),
 696                      g_read_board INTEGER NOT NULL DEFAULT 1,
 697                      g_post_replies INTEGER NOT NULL DEFAULT 1,
 698                      g_post_topics INTEGER NOT NULL DEFAULT 1,
 699                      g_post_polls INTEGER NOT NULL DEFAULT 1,
 700                      g_edit_posts INTEGER NOT NULL DEFAULT 1,
 701                      g_delete_posts INTEGER NOT NULL DEFAULT 1,
 702                      g_delete_topics INTEGER NOT NULL DEFAULT 1,
 703                      g_set_title INTEGER NOT NULL DEFAULT 1,
 704                      g_search INTEGER NOT NULL DEFAULT 1,
 705                      g_search_users INTEGER NOT NULL DEFAULT 1,
 706                      g_edit_subjects_interval INTEGER NOT NULL DEFAULT 300,
 707                      g_post_flood INTEGER NOT NULL DEFAULT 30,
 708                      g_search_flood INTEGER NOT NULL DEFAULT 30,
 709                      PRIMARY KEY (g_id)
 710                      )";
 711              break;
 712      }
 713  
 714      $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());
 715  
 716  
 717  
 718      switch ($db_type)
 719      {
 720          case 'mysql':
 721          case 'mysqli':
 722              $sql = 'CREATE TABLE '.$db_prefix."online (
 723                      user_id INT(10) UNSIGNED NOT NULL DEFAULT 1,
 724                      ident VARCHAR(200) NOT NULL DEFAULT '',
 725                      logged INT(10) UNSIGNED NOT NULL DEFAULT 0,
 726                      idle TINYINT(1) NOT NULL DEFAULT 0
 727                      ) TYPE=HEAP;";
 728              break;
 729  
 730          case 'pgsql':
 731              $sql = 'CREATE TABLE '.$db_prefix."online (
 732                      user_id INT NOT NULL DEFAULT 1,
 733                      ident VARCHAR(200) NOT NULL DEFAULT '',
 734                      logged INT NOT NULL DEFAULT 0,
 735                      idle SMALLINT NOT NULL DEFAULT 0
 736                      )";
 737              break;
 738  
 739          case 'sqlite':
 740              $sql = 'CREATE TABLE '.$db_prefix."online (
 741                      user_id INTEGER NOT NULL DEFAULT 1,
 742                      ident VARCHAR(200) NOT NULL DEFAULT '',
 743                      logged INTEGER NOT NULL DEFAULT 0,
 744                      idle INTEGER NOT NULL DEFAULT 0
 745                      )";
 746              break;
 747      }
 748  
 749      $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());
 750  
 751  
 752  
 753      switch ($db_type)
 754      {
 755          case 'mysql':
 756          case 'mysqli':
 757              $sql = 'CREATE TABLE '.$db_prefix."posts (
 758                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 759                      poster VARCHAR(200) NOT NULL DEFAULT '',
 760                      poster_id INT(10) UNSIGNED NOT NULL DEFAULT 1,
 761                      poster_ip VARCHAR(15),
 762                      poster_email VARCHAR(50),
 763                      message TEXT,
 764                      hide_smilies TINYINT(1) NOT NULL DEFAULT 0,
 765                      posted INT(10) UNSIGNED NOT NULL DEFAULT 0,
 766                      edited INT(10) UNSIGNED,
 767                      edited_by VARCHAR(200),
 768                      topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 769                      PRIMARY KEY (id)
 770                      ) TYPE=MyISAM;";
 771              break;
 772  
 773          case 'pgsql':
 774              $sql = 'CREATE TABLE '.$db_prefix."posts (
 775                      id SERIAL,
 776                      poster VARCHAR(200) NOT NULL DEFAULT '',
 777                      poster_id INT NOT NULL DEFAULT 1,
 778                      poster_ip VARCHAR(15),
 779                      poster_email VARCHAR(50),
 780                      message TEXT,
 781                      hide_smilies SMALLINT NOT NULL DEFAULT 0,
 782                      posted INT NOT NULL DEFAULT 0,
 783                      edited INT,
 784                      edited_by VARCHAR(200),
 785                      topic_id INT NOT NULL DEFAULT 0,
 786                      PRIMARY KEY (id)
 787                      )";
 788              break;
 789  
 790          case 'sqlite':
 791              $sql = 'CREATE TABLE '.$db_prefix."posts (
 792                      id INTEGER NOT NULL,
 793                      poster VARCHAR(200) NOT NULL DEFAULT '',
 794                      poster_id INTEGER NOT NULL DEFAULT 1,
 795                      poster_ip VARCHAR(15),
 796                      poster_email VARCHAR(50),
 797                      message TEXT,
 798                      hide_smilies INTEGER NOT NULL DEFAULT 0,
 799                      posted INTEGER NOT NULL DEFAULT 0,
 800                      edited INTEGER,
 801                      edited_by VARCHAR(200),
 802                      topic_id INTEGER NOT NULL DEFAULT 0,
 803                      PRIMARY KEY (id)
 804                      )";
 805              break;
 806      }
 807  
 808      $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());
 809  
 810  
 811  
 812      switch ($db_type)
 813      {
 814          case 'mysql':
 815          case 'mysqli':
 816              $sql = 'CREATE TABLE '.$db_prefix."ranks (
 817                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 818                      rank VARCHAR(50) NOT NULL DEFAULT '',
 819                      min_posts MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
 820                      PRIMARY KEY (id)
 821                      ) TYPE=MyISAM;";
 822              break;
 823  
 824          case 'pgsql':
 825              $sql = 'CREATE TABLE '.$db_prefix."ranks (
 826                      id SERIAL,
 827                      rank VARCHAR(50) NOT NULL DEFAULT '',
 828                      min_posts INT NOT NULL DEFAULT 0,
 829                      PRIMARY KEY (id)
 830                      )";
 831              break;
 832  
 833          case 'sqlite':
 834              $sql = 'CREATE TABLE '.$db_prefix."ranks (
 835                      id INTEGER NOT NULL,
 836                      rank VARCHAR(50) NOT NULL DEFAULT '',
 837                      min_posts INTEGER NOT NULL DEFAULT 0,
 838                      PRIMARY KEY (id)
 839                      )";
 840              break;
 841      }
 842  
 843      $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());
 844  
 845  
 846  
 847      switch ($db_type)
 848      {
 849          case 'mysql':
 850          case 'mysqli':
 851              $sql = 'CREATE TABLE '.$db_prefix."reports (
 852                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 853                      post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 854                      topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 855                      forum_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 856                      reported_by INT(10) UNSIGNED NOT NULL DEFAULT 0,
 857                      created INT(10) UNSIGNED NOT NULL DEFAULT 0,
 858                      message TEXT,
 859                      zapped INT(10) UNSIGNED,
 860                      zapped_by INT(10) UNSIGNED,
 861                      PRIMARY KEY (id)
 862                      ) TYPE=MyISAM;";
 863              break;
 864  
 865          case 'pgsql':
 866              $sql = 'CREATE TABLE '.$db_prefix."reports (
 867                      id SERIAL,
 868                      post_id INT NOT NULL DEFAULT 0,
 869                      topic_id INT NOT NULL DEFAULT 0,
 870                      forum_id INT NOT NULL DEFAULT 0,
 871                      reported_by INT NOT NULL DEFAULT 0,
 872                      created INT NOT NULL DEFAULT 0,
 873                      message TEXT,
 874                      zapped INT,
 875                      zapped_by INT,
 876                      PRIMARY KEY (id)
 877                      )";
 878              break;
 879  
 880          case 'sqlite':
 881              $sql = 'CREATE TABLE '.$db_prefix."reports (
 882                      id INTEGER NOT NULL,
 883                      post_id INTEGER NOT NULL DEFAULT 0,
 884                      topic_id INTEGER NOT NULL DEFAULT 0,
 885                      forum_id INTEGER NOT NULL DEFAULT 0,
 886                      reported_by INTEGER NOT NULL DEFAULT 0,
 887                      created INTEGER NOT NULL DEFAULT 0,
 888                      message TEXT,
 889                      zapped INTEGER,
 890                      zapped_by INTEGER,
 891                      PRIMARY KEY (id)
 892                      )";
 893              break;
 894      }
 895  
 896      $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());
 897  
 898  
 899  
 900      switch ($db_type)
 901      {
 902          case 'mysql':
 903          case 'mysqli':
 904              $sql = 'CREATE TABLE '.$db_prefix."search_cache (
 905                      id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 906                      ident VARCHAR(200) NOT NULL DEFAULT '',
 907                      search_data TEXT,
 908                      PRIMARY KEY (id)
 909                      ) TYPE=MyISAM;";
 910              break;
 911  
 912          case 'pgsql':
 913              $sql = 'CREATE TABLE '.$db_prefix."search_cache (
 914                      id INT NOT NULL DEFAULT 0,
 915                      ident VARCHAR(200) NOT NULL DEFAULT '',
 916                      search_data TEXT,
 917                      PRIMARY KEY (id)
 918                      )";
 919              break;
 920  
 921          case 'sqlite':
 922              $sql = 'CREATE TABLE '.$db_prefix."search_cache (
 923                      id INTEGER NOT NULL DEFAULT 0,
 924                      ident VARCHAR(200) NOT NULL DEFAULT '',
 925                      search_data TEXT,
 926                      PRIMARY KEY (id)
 927                      )";
 928              break;
 929      }
 930  
 931      $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());
 932  
 933  
 934  
 935      switch ($db_type)
 936      {
 937          case 'mysql':
 938          case 'mysqli':
 939              $sql = 'CREATE TABLE '.$db_prefix."search_matches (
 940                      post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
 941                      word_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
 942                      subject_match TINYINT(1) NOT NULL DEFAULT 0
 943                      ) TYPE=MyISAM;";
 944              break;
 945  
 946          case 'pgsql':
 947              $sql = 'CREATE TABLE '.$db_prefix."search_matches (
 948                      post_id INT NOT NULL DEFAULT 0,
 949                      word_id INT NOT NULL DEFAULT 0,
 950                      subject_match SMALLINT NOT NULL DEFAULT 0
 951                      )";
 952              break;
 953  
 954          case 'sqlite':
 955              $sql = 'CREATE TABLE '.$db_prefix."search_matches (
 956                      post_id INTEGER NOT NULL DEFAULT 0,
 957                      word_id INTEGER NOT NULL DEFAULT 0,
 958                      subject_match INTEGER NOT NULL DEFAULT 0
 959                      )";
 960              break;
 961      }
 962  
 963      $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());
 964  
 965  
 966  
 967      switch ($db_type)
 968      {
 969          case 'mysql':
 970          case 'mysqli':
 971              $sql = 'CREATE TABLE '.$db_prefix."search_words (
 972                      id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
 973                      word VARCHAR(20) BINARY NOT NULL DEFAULT '',
 974                      PRIMARY KEY (word),
 975                      KEY ".$db_prefix."search_words_id_idx (id)
 976                      ) TYPE=MyISAM;";
 977              break;
 978  
 979          case 'pgsql':
 980              $sql = 'CREATE TABLE '.$db_prefix."search_words (
 981                      id SERIAL,
 982                      word VARCHAR(20) NOT NULL DEFAULT '',
 983                      PRIMARY KEY (word)
 984                      )";
 985              break;
 986  
 987          case 'sqlite':
 988              $sql = 'CREATE TABLE '.$db_prefix."search_words (
 989                      id INTEGER NOT NULL,
 990                      word VARCHAR(20) NOT NULL DEFAULT '',
 991                      PRIMARY KEY (id),
 992                      UNIQUE (word)
 993                      )";
 994              break;
 995      }
 996  
 997      $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());
 998  
 999  
1000  
1001      switch ($db_type)
1002      {
1003          case 'mysql':
1004          case 'mysqli':
1005              $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1006                      user_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1007                      topic_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1008                      PRIMARY KEY (user_id, topic_id)
1009                      ) TYPE=MyISAM;";
1010              break;
1011  
1012          case 'pgsql':
1013              $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1014                      user_id INT NOT NULL DEFAULT 0,
1015                      topic_id INT NOT NULL DEFAULT 0,
1016                      PRIMARY KEY (user_id, topic_id)
1017                      )";
1018              break;
1019  
1020          case 'sqlite':
1021              $sql = 'CREATE TABLE '.$db_prefix."subscriptions (
1022                      user_id INTEGER NOT NULL DEFAULT 0,
1023                      topic_id INTEGER NOT NULL DEFAULT 0,
1024                      PRIMARY KEY (user_id, topic_id)
1025                      )";
1026              break;
1027      }
1028  
1029      $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());
1030  
1031  
1032  
1033      switch ($db_type)
1034      {
1035          case 'mysql':
1036          case 'mysqli':
1037              $sql = 'CREATE TABLE '.$db_prefix."topics (
1038                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1039                      poster VARCHAR(200) NOT NULL DEFAULT '',
1040                      subject VARCHAR(255) NOT NULL DEFAULT '',
1041                      posted INT(10) UNSIGNED NOT NULL DEFAULT 0,
1042                      last_post INT(10) UNSIGNED NOT NULL DEFAULT 0,
1043                      last_post_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1044                      last_poster VARCHAR(200),
1045                      num_views MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
1046                      num_replies MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0,
1047                      closed TINYINT(1) NOT NULL DEFAULT 0,
1048                      sticky TINYINT(1) NOT NULL DEFAULT 0,
1049                      moved_to INT(10) UNSIGNED,
1050                      forum_id INT(10) UNSIGNED NOT NULL DEFAULT 0,
1051                      PRIMARY KEY (id)
1052                      ) TYPE=MyISAM;";
1053              break;
1054  
1055          case 'pgsql':
1056              $sql = 'CREATE TABLE '.$db_prefix."topics (
1057                      id SERIAL,
1058                      poster VARCHAR(200) NOT NULL DEFAULT '',
1059                      subject VARCHAR(255) NOT NULL DEFAULT '',
1060                      posted INT NOT NULL DEFAULT 0,
1061                      last_post INT NOT NULL DEFAULT 0,
1062                      last_post_id INT NOT NULL DEFAULT 0,
1063                      last_poster VARCHAR(200),
1064                      num_views INT NOT NULL DEFAULT 0,
1065                      num_replies INT NOT NULL DEFAULT 0,
1066                      closed SMALLINT NOT NULL DEFAULT 0,
1067                      sticky SMALLINT NOT NULL DEFAULT 0,
1068                      moved_to INT,
1069                      forum_id INT NOT NULL DEFAULT 0,
1070                      PRIMARY KEY (id)
1071                      )";
1072              break;
1073  
1074          case 'sqlite':
1075              $sql = 'CREATE TABLE '.$db_prefix."topics (
1076                      id INTEGER NOT NULL,
1077                      poster VARCHAR(200) NOT NULL DEFAULT '',
1078                      subject VARCHAR(255) NOT NULL DEFAULT '',
1079                      posted INTEGER NOT NULL DEFAULT 0,
1080                      last_post INTEGER NOT NULL DEFAULT 0,
1081                      last_post_id INTEGER NOT NULL DEFAULT 0,
1082                      last_poster VARCHAR(200),
1083                      num_views INTEGER NOT NULL DEFAULT 0,
1084                      num_replies INTEGER NOT NULL DEFAULT 0,
1085                      closed INTEGER NOT NULL DEFAULT 0,
1086                      sticky INTEGER NOT NULL DEFAULT 0,
1087                      moved_to INTEGER,
1088                      forum_id INTEGER NOT NULL DEFAULT 0,
1089                      PRIMARY KEY (id)
1090                      )";
1091              break;
1092      }
1093  
1094      $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());
1095  
1096  
1097  
1098      switch ($db_type)
1099      {
1100          case 'mysql':
1101          case 'mysqli':
1102              $sql = 'CREATE TABLE '.$db_prefix."users (
1103                      id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
1104                      group_id INT(10) UNSIGNED NOT NULL DEFAULT 4,
1105                      username VARCHAR(200) NOT NULL DEFAULT '',
1106                      password VARCHAR(40) NOT NULL DEFAULT '',
1107                      email VARCHAR(50) NOT NULL DEFAULT '',
1108                      title VARCHAR(50),
1109                      realname VARCHAR(40),
1110                      url VARCHAR(100),
1111                      jabber VARCHAR(75),
1112                      icq VARCHAR(12),
1113                      msn VARCHAR(50),
1114                      aim VARCHAR(30),
1115                      yahoo VARCHAR(30),
1116                      location VARCHAR(30),
1117                      use_avatar TINYINT(1) NOT NULL DEFAULT 0,
1118                      signature TEXT,
1119                      disp_topics TINYINT(3) UNSIGNED,
1120                      disp_posts TINYINT(3) UNSIGNED,
1121                      email_setting TINYINT(1) NOT NULL DEFAULT 1,
1122                      save_pass TINYINT(1) NOT NULL DEFAULT 1,
1123                      notify_with_post TINYINT(1) NOT NULL DEFAULT 0,
1124                      show_smilies TINYINT(1) NOT NULL DEFAULT 1,
1125                      show_img TINYINT(1) NOT NULL DEFAULT 1,
1126                      show_img_sig TINYINT(1) NOT NULL DEFAULT 1,
1127                      show_avatars TINYINT(1) NOT NULL DEFAULT 1,
1128                      show_sig TINYINT(1) NOT NULL DEFAULT 1,
1129                      timezone FLOAT NOT NULL DEFAULT 0,
1130                      language VARCHAR(25) NOT NULL DEFAULT 'English',
1131                      style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1132                      num_posts INT(10) UNSIGNED NOT NULL DEFAULT 0,
1133                      last_post INT(10) UNSIGNED,
1134                      registered INT(10) UNSIGNED NOT NULL DEFAULT 0,
1135                      registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1136                      last_visit INT(10) UNSIGNED NOT NULL DEFAULT 0,
1137                      admin_note VARCHAR(30),
1138                      activate_string VARCHAR(50),
1139                      activate_key VARCHAR(8),
1140                      PRIMARY KEY (id)
1141                      ) TYPE=MyISAM;";
1142              break;
1143  
1144          case 'pgsql':
1145              $sql = 'CREATE TABLE '.$db_prefix."users (
1146                      id SERIAL,
1147                      group_id INT NOT NULL DEFAULT 4,
1148                      username VARCHAR(200) NOT NULL DEFAULT '',
1149                      password VARCHAR(40) NOT NULL DEFAULT '',
1150                      email VARCHAR(50) NOT NULL DEFAULT '',
1151                      title VARCHAR(50),
1152                      realname VARCHAR(40),
1153                      url VARCHAR(100),
1154                      jabber VARCHAR(75),
1155                      icq VARCHAR(12),
1156                      msn VARCHAR(50),
1157                      aim VARCHAR(30),
1158                      yahoo VARCHAR(30),
1159                      location VARCHAR(30),
1160                      use_avatar SMALLINT NOT NULL DEFAULT 0,
1161                      signature TEXT,
1162                      disp_topics SMALLINT,
1163                      disp_posts SMALLINT,
1164                      email_setting SMALLINT NOT NULL DEFAULT 1,
1165                      save_pass SMALLINT NOT NULL DEFAULT 1,
1166                      notify_with_post SMALLINT NOT NULL DEFAULT 0,
1167                      show_smilies SMALLINT NOT NULL DEFAULT 1,
1168                      show_img SMALLINT NOT NULL DEFAULT 1,
1169                      show_img_sig SMALLINT NOT NULL DEFAULT 1,
1170                      show_avatars SMALLINT NOT NULL DEFAULT 1,
1171                      show_sig SMALLINT NOT NULL DEFAULT 1,
1172                      timezone REAL NOT NULL DEFAULT 0,
1173                      language VARCHAR(25) NOT NULL DEFAULT 'English',
1174                      style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1175                      num_posts INT NOT NULL DEFAULT 0,
1176                      last_post INT,
1177                      registered INT NOT NULL DEFAULT 0,
1178                      registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1179                      last_visit INT NOT NULL DEFAULT 0,
1180                      admin_note VARCHAR(30),
1181                      activate_string VARCHAR(50),
1182                      activate_key VARCHAR(8),
1183                      PRIMARY KEY (id)
1184                      )";
1185              break;
1186  
1187          case 'sqlite':
1188              $sql = 'CREATE TABLE '.$db_prefix."users (
1189                      id INTEGER NOT NULL,
1190                      group_id INTEGER NOT NULL DEFAULT 4,
1191                      username VARCHAR(200) NOT NULL DEFAULT '',
1192                      password VARCHAR(40) NOT NULL DEFAULT '',
1193                      email VARCHAR(50) NOT NULL DEFAULT '',
1194                      title VARCHAR(50),
1195                      realname VARCHAR(40),
1196                      url VARCHAR(100),
1197                      jabber VARCHAR(75),
1198                      icq VARCHAR(12),
1199                      msn VARCHAR(50),
1200                      aim VARCHAR(30),
1201                      yahoo VARCHAR(30),
1202                      location VARCHAR(30),
1203                      use_avatar INTEGER NOT NULL DEFAULT 0,
1204                      signature TEXT,
1205                      disp_topics INTEGER,
1206                      disp_posts INTEGER,
1207                      email_setting INTEGER NOT NULL DEFAULT 1,
1208                      save_pass INTEGER NOT NULL DEFAULT 1,
1209                      notify_with_post INTEGER NOT NULL DEFAULT 0,
1210                      show_smilies INTEGER NOT NULL DEFAULT 1,
1211                      show_img INTEGER NOT NULL DEFAULT 1,
1212                      show_img_sig INTEGER NOT NULL DEFAULT 1,
1213                      show_avatars INTEGER NOT NULL DEFAULT 1,
1214                      show_sig INTEGER NOT NULL DEFAULT 1,
1215                      timezone FLOAT NOT NULL DEFAULT 0,
1216                      language VARCHAR(25) NOT NULL DEFAULT 'English',
1217                      style VARCHAR(25) NOT NULL DEFAULT 'Oxygen',
1218                      num_posts INTEGER NOT NULL DEFAULT 0,
1219                      last_post INTEGER,
1220                      registered INTEGER NOT NULL DEFAULT 0,
1221                      registration_ip VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
1222                      last_visit INTEGER NOT NULL DEFAULT 0,
1223                      admin_note VARCHAR(30),
1224                      activate_string VARCHAR(50),
1225                      activate_key VARCHAR(8),
1226                      PRIMARY KEY (id)
1227                      )";
1228              break;
1229      }
1230  
1231      $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());
1232  
1233  
1234      // Add some indexes

1235      switch ($db_type)
1236      {
1237          case 'mysql':
1238          case 'mysqli':
1239              // We use MySQL's ALTER TABLE ... ADD INDEX syntax instead of CREATE INDEX to avoid problems with users lacking the INDEX privilege

1240              $queries[] = 'ALTER TABLE '.$db_prefix.'online ADD UNIQUE INDEX '.$db_prefix.'online_user_id_ident_idx(user_id,ident)';
1241              $queries[] = 'ALTER TABLE '.$db_prefix.'online ADD INDEX '.$db_prefix.'online_user_id_idx(user_id)';
1242              $queries[] = 'ALTER TABLE '.$db_prefix.'posts ADD INDEX '.$db_prefix.'posts_topic_id_idx(topic_id)';
1243              $queries[] = 'ALTER TABLE '.$db_prefix.'posts ADD INDEX '.$db_prefix.'posts_multi_idx(poster_id, topic_id)';
1244              $queries[] = 'ALTER TABLE '.$db_prefix.'reports ADD INDEX '.$db_prefix.'reports_zapped_idx(zapped)';
1245              $queries[] = 'ALTER TABLE '.$db_prefix.'search_matches ADD INDEX '.$db_prefix.'search_matches_word_id_idx(word_id)';
1246              $queries[] = 'ALTER TABLE '.$db_prefix.'search_matches ADD INDEX '.$db_prefix.'search_matches_post_id_idx(post_id)';
1247              $queries[] = 'ALTER TABLE '.$db_prefix.'topics ADD INDEX '.$db_prefix.'topics_forum_id_idx(forum_id)';
1248              $queries[] = 'ALTER TABLE '.$db_prefix.'topics ADD INDEX '.$db_prefix.'topics_moved_to_idx(moved_to)';
1249              $queries[] = 'ALTER TABLE '.$db_prefix.'users ADD INDEX '.$db_prefix.'users_registered_idx(registered)';
1250              $queries[] = 'ALTER TABLE '.$db_prefix.'search_cache ADD INDEX '.$db_prefix.'search_cache_ident_idx(ident(8))';
1251              $queries[] = 'ALTER TABLE '.$db_prefix.'users ADD INDEX '.$db_prefix.'users_username_idx(username(8))';
1252              break;
1253  
1254          default:
1255              $queries[] = 'CREATE INDEX '.$db_prefix.'online_user_id_idx ON '.$db_prefix.'online(user_id)';
1256              $queries[] = 'CREATE INDEX '.$db_prefix.'posts_topic_id_idx ON '.$db_prefix.'posts(topic_id)';
1257              $queries[] = 'CREATE INDEX '.$db_prefix.'posts_multi_idx ON '.$db_prefix.'posts(poster_id, topic_id)';
1258              $queries[] = 'CREATE INDEX '.$db_prefix.'reports_zapped_idx ON '.$db_prefix.'reports(zapped)';
1259              $queries[] = 'CREATE INDEX '.$db_prefix.'search_matches_word_id_idx ON '.$db_prefix.'search_matches(word_id)';
1260              $queries[] = 'CREATE INDEX '.$db_prefix.'search_matches_post_id_idx ON '.$db_prefix.'search_matches(post_id)';
1261              $queries[] = 'CREATE INDEX '.$db_prefix.'topics_forum_id_idx ON '.$db_prefix.'topics(forum_id)';
1262              $queries[] = 'CREATE INDEX '.$db_prefix.'topics_moved_to_idx ON '.$db_prefix.'topics(moved_to)';
1263              $queries[] = 'CREATE INDEX '.$db_prefix.'users_registered_idx ON '.$db_prefix.'users(registered)';
1264              $queries[] = 'CREATE INDEX '.$db_prefix.'users_username_idx ON '.$db_prefix.'users(username)';
1265              $queries[] = 'CREATE INDEX '.$db_prefix.'search_cache_ident_idx ON '.$db_prefix.'search_cache(ident)';
1266              $queries[] = 'CREATE INDEX '.$db_prefix.'search_words_id_idx ON '.$db_prefix.'search_words(id)';
1267              break;
1268      }
1269  
1270      @reset($queries);
1271      while (list(, $sql) = @each($queries))
1272          $db->query($sql) or error('Impossible de créer les index. Veuillez vérifier vos réglages et essayer à nouveau.',  __FILE__, __LINE__, $db->error());
1273  
1274  
1275  
1276      $now = time();
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      // Insert guest and first admin user

1285      $db->query('INSERT INTO '.$db_prefix."users (group_id, username, password, email) VALUES(3, 'Invité', 'Invité', 'Invité')")
1286          or error('Impossible d\'ajouter l\'utilisateur "invité". Veuillez vérifier vos réglages et essayer à nouveau.');
1287  
1288      $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')")
1289          or error('Impossible d\'ajouter le compte administrateur. Veuillez vérifier vos réglages et essayer à nouveau.');
1290  
1291      // Insert config data

1292      $config = array(
1293          'o_cur_version'                => "'$punbb_version'",
1294          'o_cur_version_fr'            => "'$punbb_version_fr'",
1295          'o_board_title'                => "'Mon forum PunBB'",
1296          'o_board_desc'                => "'Malheureusement personne ne peut vous dire ce que PunBB est - vous devez le voir par vous-même.'",
1297          'o_server_timezone'            => "'0'",
1298          'o_time_format'                => "'H:i:s'",
1299          'o_date_format'                => "'d-m-Y'",
1300          'o_timeout_visit'            => "'600'",
1301          'o_timeout_online'            => "'300'",
1302          'o_redirect_delay'            => "'1'",
1303          'o_show_version'            => "'0'",
1304          'o_show_user_info'            => "'1'",
1305          'o_show_post_count'            => "'1'",
1306          'o_smilies'                    => "'1'",
1307          'o_smilies_sig'                => "'1'",
1308          'o_make_links'                => "'1'",
1309          'o_default_lang'            => "'French'",
1310          'o_default_style'            => "'Oxygen'",
1311          'o_default_user_group'        => "'4'",
1312          'o_topic_review'            => "'15'",
1313          'o_disp_topics_default'        => "'30'",
1314          'o_disp_posts_default'        => "'25'",
1315          'o_indent_num_spaces'        => "'4'",
1316          'o_quickpost'                => "'1'",
1317          'o_users_online'            => "'1'",
1318          'o_censoring'                => "'0'",
1319          'o_ranks'                    => "'1'",
1320          'o_show_dot'                => "'0'",
1321          'o_quickjump'                => "'1'",
1322          'o_gzip'                    => "'0'",
1323          'o_additional_navlinks'        => "''",
1324          'o_report_method'            => "'0'",
1325          'o_regs_report'                => "'0'",
1326          'o_mailing_list'            => "'$email'",
1327          'o_avatars'                    => "'1'",
1328          'o_avatars_dir'                => "'img/avatars'",
1329          'o_avatars_width'            => "'60'",
1330          'o_avatars_height'            => "'60'",
1331          'o_avatars_size'            => "'10240'",
1332          'o_search_all_forums'        => "'1'",
1333          'o_base_url'                => "'$base_url'",
1334          'o_admin_email'                => "'$email'",
1335          'o_webmaster_email'            => "'$email'",
1336          'o_subscriptions'            => "'1'",
1337          'o_smtp_host'                => "NULL",
1338          'o_smtp_user'                => "NULL",
1339          'o_smtp_pass'                => "NULL",
1340          'o_regs_allow'                => "'1'",
1341          'o_regs_verify'                => "'0'",
1342          'o_announcement'            => "'0'",
1343          'o_announcement_message'    => "'Saisissez votre annonce ici.'",
1344          'o_rules'                    => "'0'",
1345          'o_rules_message'            => "'Saisissez vos règles ici.'",
1346          'o_maintenance'                => "'0'",
1347          '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'",
1348          'p_mod_edit_users'            => "'1'",
1349          'p_mod_rename_users'        => "'0'",
1350          'p_mod_change_passwords'    => "'0'",
1351          'p_mod_ban_users'            => "'0'",
1352          'p_message_bbcode'            => "'1'",
1353          'p_message_img_tag'            => "'1'",
1354          'p_message_all_caps'        => "'1'",
1355          'p_subject_all_caps'        => "'1'",
1356          'p_sig_all_caps'            => "'1'",
1357          'p_sig_bbcode'                => "'1'",
1358          'p_sig_img_tag'                => "'0'",
1359          'p_sig_length'                => "'400'",
1360          'p_sig_lines'                => "'4'",
1361          'p_allow_banned_email'        => "'1'",
1362          'p_allow_dupe_email'        => "'0'",
1363          'p_force_guest_email'        => "'1'"
1364      );
1365  
1366      while (list($conf_name, $conf_value) = @each($config))
1367      {
1368          $db->query('INSERT INTO '.$db_prefix."config (conf_name, conf_value) VALUES('$conf_name', $conf_value)")
1369              or error('Impossible d\'insérer dans la table '.$db_prefix.'config. Veuillez vérifier votre configuration et essayez à nouveau.');
1370      }
1371  
1372      // Insert some other default data

1373      $db->query('INSERT INTO '.$db_prefix."categories (cat_name, disp_position) VALUES('Catégorie test', 1)")
1374          or error('Impossible d\'insérer dans la table '.$db_prefix.'categories. Veuillez vérifier votre configuration et essayez à nouveau.');
1375  
1376      $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)")
1377          or error('Impossible d\'insérer dans la table '.$db_prefix.'forums. Veuillez vérifier votre configuration et essayez à nouveau.');
1378  
1379      $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)")
1380          or error('Impossible d\'insérer dans la table '.$db_prefix.'topics. Veuillez vérifier votre configuration et essayez à nouveau.');
1381  
1382      $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 PunBB semble avoir fonctionné ! Maintenant identifiez-vous et rendez-vous sur le panneau de contrôle administration pour configurer vos forums.', ".$now.", 1)")
1383          or error('Impossible d\'insérer dans la table '.$db_prefix.'posts. Veuillez vérifier votre configuration et essayez à nouveau.');
1384  
1385      $db->query('INSERT INTO '.$db_prefix."ranks (rank, min_posts) VALUES('Nouveau membre', 0)")
1386          or error('Impossible d\'insérer dans la table '.$db_prefix.'ranks. Veuillez vérifier votre configuration et essayez à nouveau.');
1387  
1388      $db->query('INSERT INTO '.$db_prefix."ranks (rank, min_posts) VALUES('Membre', 10)")
1389          or error('Impossible d\'insérer dans la table '.$db_prefix.'ranks. Veuillez vérifier votre configuration et essayez à nouveau.');
1390  
1391  
1392      if ($db_type == 'pgsql' || $db_type == 'sqlite')
1393          $db->end_transaction();
1394  
1395  
1396  
1397      $alerts = '';
1398      // Check if the cache directory is writable

1399      if (!@is_writable('./cache/'))
1400          $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 PunBB 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>';
1401  
1402      // Check if default avatar directory is writable

1403      if (!@is_writable('./img/avatars/'))
1404          $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>';
1405  
1406  
1407      /// Display config.php and give further instructions

1408      $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);";
1409  
1410  
1411  ?>
1412  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1413  
1414  <html>
1415  <head>
1416  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
1417  <title>Installation de PunBB</title>
1418  <link rel="stylesheet" type="text/css" href="style/Oxygen.css" />
1419  </head>
1420  <body>
1421  
1422  <div id="puninstall" style="margin: auto 10% auto 10%">
1423  <div class="pun">
1424  
1425  <div class="blockform">
1426      <h2>Instructions finales</h2>
1427      <div class="box">
1428          <div class="fakeform">
1429              <div class="inform">
1430                  <div class="forminfo">
1431                      <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>
1432  <?php if ($alerts != ''): ?>                    <?php echo $alerts."\n" ?>
1433  <?php endif; ?>                </div>
1434                  <fieldset>
1435                      <legend>Copiez ce contenu dans config.php</legend>
1436                      <div class="infldset">
1437                          <textarea cols="80" rows="20"><?php echo htmlspecialchars($config) ?></textarea>
1438                      </div>
1439                  </fieldset>
1440              </div>
1441              <div class="inform">
1442                  <div class="forminfo">
1443                      <p>Une fois que vous aurez créé config.php avec le contenu ci-dessus, PunBB sera installé !</p>
1444                      <p><a href="index.php">Aller à l'index des forums</a></p>
1445                  </div>
1446              </div>
1447          </div>
1448      </div>
1449  </div>
1450  
1451  </div>
1452  </div>
1453  
1454  </body>
1455  </html>
1456  <?php
1457  
1458  }


Généré le : Sat Nov 24 22:44:38 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics