Mise à jour manuelle de phpBB 2.0.18 à 2.0.19

Télécharger la dernière version de phpBB2; scripts de mise à jour automatique ; ou changements manuels de code .

Modérateur: Equipe

Mise à jour manuelle de phpBB 2.0.18 à 2.0.19

Messagede Cheval-furtif le 30 Déc 2005 à 16:41

Bonjour,

Voici la mise à jour de phpBB 2.0.18 à phpBB 2.0.19

[Ce message est une simple traduction des informations contenues dans ce message de phpBB.com]

Vous trouverez ci-dessous les changements à effectuer pour passer de phpBB 2.0.18 à phpBB 2.0.19, le tout résumé sous la forme d'un MOD. Cela peut vous être utile si vous voulez mettre à jour un forum où des MODs ont été installés. En effet, il est généralement plus simple d'appliquer des modifications directement sur le code source de phpBB que de réinstaller les MODs.

Si vous ne savez pas comment installer un MOD, une aide est disponible ici :
:arrow: http://forums.phpbb-fr.com/viewtopic_59762.html

Lorsque vous tombez sur la déclaration 'AJOUTER APRES', le code doit être ajouté après la dernière ligne citée dans la déclaration 'TROUVER'.
Lorsque vous tombez sur la déclaration 'AJOUTER AVANT', le code doit être ajouté avant la première ligne citée dans la déclaration 'TROUVER'.
Lorsque vous tombez sur la déclaration 'REMPLACER PAR', le code cité dans la déclaration 'TROUVER' doit complètement être remplacé par le code cité dans la déclaration 'REMPLACER PAR'.


Après avoir effectué les modifications, vous devez envoyer le fichier update_to_latest.php sur votre serveur et l'éxécuter, puis enfin le supprimer.
Instructions pas à pas:
  1. Créer un répertoire nommé install à la racine de votre installation de phpBB, ex: http://www.votresite.com/phpbb/install/
    Attention, la création du répertoire install bloquera temporairement l'accès à votre forum, ne vous affolez pas, il vous suffira de le supprimer pour que tout revienne à la normale :)
  2. Envoyer update_to_latest.php dans le répertoire install
  3. Exécuter update_to_latest.php depuis votre navigateur internet en vous rendant simplement à l'url suivante :
    http://www.votresite.com/phpbb/install/ ... latest.php
  4. Supprimer le répertoire install et tout ce qu'il contient

Télécharger les fichiers nécessaire à la mise à jour (seul update_to_latest.php devrait vous intéresser).


Si vous ne parvenez pas à exécuter le fichier suivant "install/update_to_latest.php" (sans les guillemets) et que vous avez la version 2.0.18 de phpBB, voici les requêtes à exécuter par votre gestionnaire de base de données (le plus couramment c'est phpMyAdmin) :
Code: Tout sélectionner
ALTER TABLE phpbb_users ADD COLUMN user_login_tries smallint(5) UNSIGNED DEFAULT '0' NOT NULL;
ALTER TABLE phpbb_users ADD COLUMN user_last_login_try int(11) DEFAULT '0' NOT NULL;
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_login_attempts', '5');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('login_reset_time', '30');
UPDATE phpbb_config SET config_value = '.0.19'    WHERE config_name = 'version';

Instructions pour mise à jour du code :

  • admin/admin_board.php
  1. TROUVER - Ligne 19
    Code: Tout sélectionner

       $module['General']['Configuration'] = "$file";


    REMPLACER PAR
    Code: Tout sélectionner

       $module['General']['Configuration'] = $file;

  2. TROUVER - Ligne 194
    Code: Tout sélectionner

       "L_MAX_POLL_OPTIONS" => $lang['Max_poll_options'],
       "L_FLOOD_INTERVAL" => $lang['Flood_Interval'],
       "L_FLOOD_INTERVAL_EXPLAIN" => $lang['Flood_Interval_explain'],


    AJOUTER APRES
    Code: Tout sélectionner


       'L_MAX_LOGIN_ATTEMPTS'         => $lang['Max_login_attempts'],
       'L_MAX_LOGIN_ATTEMPTS_EXPLAIN'   => $lang['Max_login_attempts_explain'],
       'L_LOGIN_RESET_TIME'         => $lang['Login_reset_time'],
       'L_LOGIN_RESET_TIME_EXPLAIN'   => $lang['Login_reset_time_explain'],
       'MAX_LOGIN_ATTEMPTS'         => $new['max_login_attempts'],
       'LOGIN_RESET_TIME'            => $new['login_reset_time'],

  • admin/admin_db_utilities.php
  1. TROUVER - Ligne 696
    Code: Tout sélectionner

             $tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words', 'confirm');


    REMPLACER PAR
    Code: Tout sélectionner

             $tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words', 'confirm', 'sessions_keys');
  • admin/admin_disallow.php
  1. TROUVER - Ligne 28
    Code: Tout sélectionner

       $module['Users']['Disallow'] = append_sid($filename);


    REMPLACER PAR
    Code: Tout sélectionner

       $module['Users']['Disallow'] = $filename;
  • admin/admin_ranks.php
  1. TROUVER - Ligne 27
    Code: Tout sélectionner

       $module['Users']['Ranks'] = "$file";


    REMPLACER PAR
    Code: Tout sélectionner

       $module['Users']['Ranks'] = $file;
  • admin/admin_styles.php
  1. TROUVER - Ligne 30
    Code: Tout sélectionner

       $module['Styles']['Manage'] = "$file";


    REMPLACER PAR
    Code: Tout sélectionner

       $module['Styles']['Manage'] = $file;
  • admin/admin_users.php
  1. TROUVER - Ligne 180
    Code: Tout sélectionner

                message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql);
             }



    AJOUTER APRES
    Code: Tout sélectionner

             $sql = "DELETE FROM " . SESSIONS_TABLE . "
                WHERE session_user_id = $user_id";
             if ( !$db->sql_query($sql) )
             {
                message_die(GENERAL_ERROR, 'Could not delete sessions for this user', '', __LINE__, __FILE__, $sql);
             }
             
             $sql = "DELETE FROM " . SESSIONS_KEYS_TABLE . "
                WHERE user_id = $user_id";
             if ( !$db->sql_query($sql) )
             {
                message_die(GENERAL_ERROR, 'Could not delete auto-login keys for this user', '', __LINE__, __FILE__, $sql);
             }


  2. TROUVER - Ligne 234
    Code: Tout sélectionner

          $username = ( !empty($HTTP_POST_VARS['username']) ) ? trim(strip_tags(htmlspecialchars($HTTP_POST_VARS['username']))) : '';


    REMPLACER PAR
    Code: Tout sélectionner

          $username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';

  3. TROUVER - Ligne 407
    Code: Tout sélectionner

                if( @file_exists(@phpbb_realpath("./" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) )
                {
                   @unlink("./" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar']);


    REMPLACER PAR
    Code: Tout sélectionner

                if( @file_exists(@phpbb_realpath('./../' . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) )
                {
                   @unlink('./../' . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar']);
  • admin/admin_words.php
  1. TROUVER - Ligne 28
    Code: Tout sélectionner

       $module['General']['Word_Censor'] = "$file";


    REMPLACER PAR
    Code: Tout sélectionner

       $module['General']['Word_Censor'] = $file;
  • admin/index.php
  1. TROUVER - Ligne 63
    Code: Tout sélectionner

             include($file);


    REMPLACER PAR
    Code: Tout sélectionner

             include('./' . $file);

  2. TROUVER - Ligne 237
    Code: Tout sélectionner

             if( preg_match("/^(3\.23|4\.)/", $version) )
             {
                $db_name = ( preg_match("/^(3\.23\.[6-9])|(3\.23\.[1-9][1-9])|(4\.)/", $version) ) ? "`$dbname`" : $dbname;


    REMPLACER PAR
    Code: Tout sélectionner

             if( preg_match("/^(3\.23|4\.|5\.)/", $version) )
             {
                $db_name = ( preg_match("/^(3\.23\.[6-9])|(3\.23\.[1-9][1-9])|(4\.)|(5\.)/", $version) ) ? "`$dbname`" : $dbname;
  • includes/bbcode.php
  1. TROUVER - Ligne 203
    Code: Tout sélectionner

       $patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
       $replacements[] = $bbcode_tpl['url1'];

       // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
       $patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";


    REMPLACER PAR
    Code: Tout sélectionner

       $patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";
       $replacements[] = $bbcode_tpl['url1'];

       // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
       $patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";

  2. TROUVER - Ligne 255
    Code: Tout sélectionner

       $text = bbencode_first_pass_pda($text, $uid, '/\[quote=(\\\".*?\\\")\]/is', '[/quote]', '', false, '', "[quote:$uid=\\1]");


    REMPLACER PAR
    Code: Tout sélectionner

       $text = bbencode_first_pass_pda($text, $uid, '/\[quote=\\\\"(.*?)\\\\"\]/is', '[/quote]', '', false, '', "[quote:$uid=\\\"\\1\\\"]");

  3. TROUVER - Ligne 392
    Code: Tout sélectionner

                if( preg_match('#\[quote=\\\"#si', $possible_start, $match) && !preg_match('#\[quote=\\\"(.*?)\\\"\]#si', $possible_start) )
                {
                   // OK we are in a quote tag that probably contains a ] bracket.
                   // Grab a bit more of the string to hopefully get all of it..
                   if ($close_pos = strpos($text, '"]', $curr_pos + 9))
                   {
                      if (strpos(substr($text, $curr_pos + 9, $close_pos - ($curr_pos + 9)), '[quote') === false)
                      {
                         $possible_start = substr($text, $curr_pos, $close_pos - $curr_pos + 2);


    REMPLACER PAR
    Code: Tout sélectionner

                if( preg_match('#\[quote=\\\"#si', $possible_start, $match) && !preg_match('#\[quote=\\\"(.*?)\\\"\]#si', $possible_start) )
                {
                   // OK we are in a quote tag that probably contains a ] bracket.
                   // Grab a bit more of the string to hopefully get all of it..
                   if ($close_pos = strpos($text, '"]', $curr_pos + 14))
                   {
                      if (strpos(substr($text, $curr_pos + 14, $close_pos - ($curr_pos + 14)), '[quote') === false)
                      {
                         $possible_start = substr($text, $curr_pos, $close_pos - $curr_pos + 7);
  • common.php
  1. TROUVER - Ligne 223
    Code: Tout sélectionner

       message_die(GENERAL_MESSAGE, 'Please ensure both the install/ and contrib/ directories are deleted');


    REMPLACER PAR
    Code: Tout sélectionner

       message_die(GENERAL_MESSAGE, 'Please_remove_install_contrib');
  • includes/functions.php
  1. TROUVER - Ligne 161
    Code: Tout sélectionner

       $sql .= ( ( is_integer($user) ) ? "user_id = $user" : "username = '" .  $user . "'" ) . " AND user_id <> " . ANONYMOUS;


    REMPLACER PAR
    Code: Tout sélectionner

       $sql .= ( ( is_integer($user) ) ? "user_id = $user" : "username = '" .  str_replace("\'", "''", $user) . "'" ) . " AND user_id <> " . ANONYMOUS;
  • includes/functions_post.php
  1. TROUVER - Ligne 28
    Code: Tout sélectionner

    $html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
    $html_entities_replace = array('&amp;', '&lt;', '&gt;');


    REMPLACER PAR
    Code: Tout sélectionner

    $html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
    $html_entities_replace = array('&amp;', '&lt;', '&gt;', '&quot;');
  • includes/usercp_confirm.php
  1. TROUVER - Ligne 156
    Code: Tout sélectionner

       if (!empty($HTTP_GET_VARS['c']))
       {
          $_png = define_raw_pngs();

          $char = substr($code, intval($HTTP_GET_VARS['c']) - 1, 1);
          header('Content-Type: image/png');
          header('Cache-control: no-cache, no-store');
          echo base64_decode($_png[$char]);

          unset($_png);
          exit;
       }


    REMPLACER PAR
    Code: Tout sélectionner

       $_png = define_raw_pngs();

       $char = substr($code, -1);
       header('Content-Type: image/png');
       header('Cache-control: no-cache, no-store');
       echo base64_decode($_png[$char]);

       unset($_png);
       exit;
  • includes/usercp_register.php
  1. TROUVER - Ligne 110
    Code: Tout sélectionner

       $strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');
       $strip_var_list['confirm_code'] = 'confirm_code';


    REMPLACER PAR
    Code: Tout sélectionner

       $strip_var_list = array('email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests', 'confirm_code' => 'confirm_code');

  2. TROUVER - Ligne 126
    Code: Tout sélectionner

       $trim_var_list = array('cur_password' => 'cur_password', 'new_password' => 'new_password', 'password_confirm' => 'password_confirm', 'signature' => 'signature');


    AJOUTER AVANT
    Code: Tout sélectionner

       $username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';


  3. TROUVER - Ligne 301
    Code: Tout sélectionner

                if ($row['code'] != $confirm_code)


    AJOUTER AVANT
    Code: Tout sélectionner

                // Only compare one char if the zlib-extension is not loaded
                if (!@extension_loaded('zlib'))
                {
                   $row['code'] = substr($row['code'], -1);
                }

  • language/lang_english/lang_admin.php
  1. TROUVER - Ligne 749
    Code: Tout sélectionner

    //
    // That's all Folks!


    AJOUTER AVANT
    Code: Tout sélectionner

    //
    // Login attempts configuration
    //
    $lang['Max_login_attempts'] = 'Allowed login attempts';
    $lang['Max_login_attempts_explain'] = 'The number of allowed board login attempts.';
    $lang['Login_reset_time'] = 'Login lock time';
    $lang['Login_reset_time_explain'] = 'Time in minutes the user have to wait until he is allowed to login again after exceeding the number of allowed login attempts.';

  • language/lang_french/lang_admin.php
  1. TROUVER - Ligne 749
    Code: Tout sélectionner

    //
    // That's all Folks!


    AJOUTER AVANT
    Code: Tout sélectionner

    //
    // Login attempts configuration
    //
    $lang['Max_login_attempts'] = 'Tentatives de connexions autorisées';
    $lang['Max_login_attempts_explain'] = 'Nombre maximum de tentatives de connexions qu\'un utilisateur peut soumettre avant qu\'il ne puisse plus se connecter.';
    $lang['Login_reset_time'] = 'Temps de verrouillage de la connexion';
    $lang['Login_reset_time_explain'] = 'Temps en minutes durant lequel un utilisateur, ayant dépassé le nombre de tentatives de connexions autorisées, ne pourra pas se connecter';

  • language/lang_english/lang_main.php
  1. TROUVER - Ligne 1021
    Code: Tout sélectionner

    //
    // That's all, Folks!


    AJOUTER AVANT
    Code: Tout sélectionner

    $lang['Login_attempts_exceeded'] = 'The maximum number of %s login attempts has been exceeded. You are not allowed to login for the next %s minutes.';
    $lang['Please_remove_install_contrib'] = 'Please ensure both the install/ and contrib/ directories are deleted';

  • language/lang_french/lang_main.php
  1. TROUVER - Ligne 1021
    Code: Tout sélectionner

    //
    // That's all, Folks!


    AJOUTER AVANT
    Code: Tout sélectionner

    $lang['Login_attempts_exceeded'] = 'Le nombre maximum de %s tentatives de connexions autorisées a été dépassé. Vous n\'êtes pas autorisé à vous connecter durant les %s prochaines minutes.';
    $lang['Please_remove_install_contrib'] = 'Veuillez vous assurer que les deux répertoires install/ et contrib/ sont supprimés';

  • login.php
  1. TROUVER - Ligne 60
    Code: Tout sélectionner

          $sql = "SELECT user_id, username, user_password, user_active, user_level


    REMPLACER PAR
    Code: Tout sélectionner

          $sql = "SELECT user_id, username, user_password, user_active, user_level, user_login_tries, user_last_login_try

  2. TROUVER - Ligne 79
    Code: Tout sélectionner

                if( md5($password) == $row['user_password'] && $row['user_active'] )


    AJOUTER AVANT
    Code: Tout sélectionner

                // If the last login is more than x minutes ago, then reset the login tries/time
                if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $row['user_last_login_try'] < (time() - ($board_config['login_reset_time'] * 60)))
                {
                   $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']);
                   $row['user_last_login_try'] = $row['user_login_tries'] = 0;
                }
                
                // Check to see if user is allowed to login again... if his tries are exceeded
                if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $board_config['max_login_attempts'] &&
                   $row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'])
                {
                   message_die(GENERAL_MESSAGE, sprintf($lang['Login_attempts_exceeded'], $board_config['max_login_attempts'], $board_config['login_reset_time']));
                }


  3. TROUVER - Ligne 97
    Code: Tout sélectionner

                   $admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0;
                   $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin);



    AJOUTER APRES
    Code: Tout sélectionner

                   // Reset login tries
                   $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']);


  4. TROUVER - Ligne 115
    Code: Tout sélectionner

                   $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&amp;', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : '';
                   $redirect = str_replace('?', '&', $redirect);


    AJOUTER AVANT
    Code: Tout sélectionner

                   // Save login tries and last login
                   if ($row['user_id'] != ANONYMOUS)
                   {
                      $sql = 'UPDATE ' . USERS_TABLE . '
                         SET user_login_tries = user_login_tries + 1, user_last_login_try = ' . time() . '
                         WHERE user_id = ' . $row['user_id'];
                      $db->sql_query($sql);
                   }
                   
  • privmsg.php
  1. TROUVER - Ligne 38
    Code: Tout sélectionner

    $html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
    $html_entities_replace = array('&amp;', '&lt;', '&gt;');


    REMPLACER PAR
    Code: Tout sélectionner

    $html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
    $html_entities_replace = array('&amp;', '&lt;', '&gt;', '&quot;');
  • templates/subSilver/admin/board_config_body.tpl
  1. TROUVER - Ligne 59
    Code: Tout sélectionner

          <td class="row2"><input class="post" type="text" size="3" maxlength="4" name="flood_interval" value="{FLOOD_INTERVAL}" /></td>
       </tr>


    AJOUTER APRES
    Code: Tout sélectionner

       <tr>
          <td class="row1">{L_MAX_LOGIN_ATTEMPTS}<br /><span class="gensmall">{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></td>
          <td class="row2"><input class="post" type="text" size="3" maxlength="4" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></td>
       </tr>
       <tr>
          <td class="row1">{L_LOGIN_RESET_TIME}<br /><span class="gensmall">{L_LOGIN_RESET_TIME_EXPLAIN}</span></td>
          <td class="row2"><input class="post" type="text" size="3" maxlength="4" name="login_reset_time" value="{LOGIN_RESET_TIME}" /></td>
       </tr>
  • templates/subSilver/admin/index_body.tpl
  1. TROUVER - Ligne 46
    Code: Tout sélectionner

       <td class="row2"><b>{GZIP_COMPRESSION}</b></td>
      </tr>
    </table>


    AJOUTER APRES
    Code: Tout sélectionner


    <h1>{L_VERSION_INFORMATION}</h1>

    {VERSION_INFO}

    <br />


  2. TROUVER - Ligne 87
    Code: Tout sélectionner


    <h1>{L_VERSION_INFORMATION}</h1>

    {VERSION_INFO}

    <br />


    REMPLACER PAR (Supprimer)
    Code: Tout sélectionner



Chers membres, à vos claviers ! :D

PS: Si vous trouvez une erreur dans notre traduction, merci de nous en informer au plus vite. :wink:
Alec ;)
Avatar de l’utilisateur
Cheval-furtif
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 6643
Inscription: 12 Jan 2004 à 10:07
Localisation: France

Retourner vers Téléchargements et mises à jour

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • Net Avenir • PromoBenef • Ticket Gagnant •