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 :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:
- 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- Envoyer update_to_latest.php dans le répertoire install
- 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- 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
- TROUVER - Ligne 19
- Code: Tout sélectionner
$module['General']['Configuration'] = "$file";
REMPLACER PAR
- Code: Tout sélectionner
$module['General']['Configuration'] = $file;- 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
- 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
- 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
- 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
- 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
- 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);
}- 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']) : '';- 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
- 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
- TROUVER - Ligne 63
- Code: Tout sélectionner
include($file);
REMPLACER PAR
- Code: Tout sélectionner
include('./' . $file);- 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
- 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";- 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\\\"]");- 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
- 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
- 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
- TROUVER - Ligne 28
- Code: Tout sélectionner
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
$html_entities_replace = array('&', '<', '>');
REMPLACER PAR
- Code: Tout sélectionner
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');
- includes/usercp_confirm.php
- 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
- 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');- 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']) : '';- 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
- 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
- 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
- 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
- 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
- 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- 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']));
}- 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']);- TROUVER - Ligne 115
- Code: Tout sélectionner
$redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', 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
- TROUVER - Ligne 38
- Code: Tout sélectionner
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
$html_entities_replace = array('&', '<', '>');
REMPLACER PAR
- Code: Tout sélectionner
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');
- templates/subSilver/admin/board_config_body.tpl
- 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
- 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 />- 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 !
PS: Si vous trouvez une erreur dans notre traduction, merci de nous en informer au plus vite.


