Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Forum concernant les demandes de support pour tout problème de mise à jour d'un forum phpBB 3.2.x depuis une version antérieure ou d'une conversion de phpBB2 ou phpBB3 vers phpBB 3.2

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Pensez à effectuer une recherche, la réponse à votre question a de grandes chances d'avoir déjà été donnée.

Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 16 Oct 2017 à 16:43

Bonjour,

je gère (?) depuis quelques années un petit forum

Image

N'étant pas très pointu en informatique, chaque mise à jour de phpBB apporte son lot d'adrénaline, mais le passage manuel de la version 3.1.6 vers 3.2.1 (il y a quelques jours) ne s'est pas trop mal déroulé, sauf que l'affichage des avatars ne se fait plus dans l'entête des messages :

Image

Au lieu d'afficher l'avatar, phpBB affiche maintenant le texte "Avatar de l'utilisateur"
    - j'ai vérifié les dossiers avatars (dont gallery et upload), tout est normal
    - de même les attributs de ces dossiers (par exemple 777 pour le dossier upload)
    - la configuration du forum (paramètrage des avatars) n'a pas changé
    - j'ai essayé de supprimer les avatars puis les remettre, recharger, etc ..

C'est le grand mystère, quelqu'un voit-il où est le problème ? (j'ai fait une recherche sur ce forum, mais les problèmes déjà résolus semblent différents)

Merci, et bonne soirée

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar Steph » 16 Oct 2017 à 17:10

Salut,

Comment as-tu fait la mise à niveau ? Peux-tu détailler ?
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 18525
Enregistré le: 29 Déc 2008 à 15:48
Localisation: Alsace / Bas-Rhin / France

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 16 Oct 2017 à 17:41

Bonjour,

et merci !

J'ai suivi cette méthode

Sauf :

Point 6 : je n'ai pas réussi à repasser en langue anglaise avant mise à jour (pour je ne sais plus quelle raison) donc j'ai fait la MAJ avec la langue française installée :?

Point 10 : j'ai aussi laissé en place un répertoire "download" qui me sert de brouillon et à stocker divers fichiers (peut être pas le meilleur emplacement d'ailleurs, j'aurais dû le mettre hors forum)

Après MAJ le forum a fonctionné mais je n'avais plus accès au panneau d'administration avec mon login administrateur (mais non fondateur), mais cette écran :

Image

J'ai utilisé "phpmyadmin" de mon fournisseur d'accès et j'ai vu que les variables étaient correctes :

Image

Ne comprenant pas vraiment tout ce chinois, je me suis déconnecté du forum puis reconnecté avec mon login d'administrateur+fondateur et tout est revenu dans l'ordre ... mystère ...

Sauf qu'il n'y a plus l'affichage des avatars...

PS : erreur possible aussi de ma part, j'utilise Filezilla en mode automatique par défaut, et non binaire (jusqu'à aujourd'hui cela n'a pas posé de problème)

Merci pour votre aide !

dB-)
Modifié en dernier par dB-] le 16 Oct 2017 à 18:21, modifié 1 fois.
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar galixte » 16 Oct 2017 à 18:19

Salut,

Ce texte « Avatar de l’utilisateur » provient de la traduction française proposée sur phpBB.com, la traduction proposée ici affiche le texte « Avatar du membre ».

Cette clé de langue est utilisée en tant que valeur alt="Avatar du membre" lorsque l’image de l’avatar n’est pas disponible, ainsi pouvoir lire ce texte signifie que ton forum na parvient pas à trouver le fichier image correspond à l’avatar du membre.

Je ne peux que t’inviter à contrôler à nouveau que les fichiers avatars soient présents dans les bons répertoires. Que leurs entrées correspondantes soient toujours présentes dans la base de données.

Aussi, un lien vers ton forum avec un compte test pourrait nous aider.

Cela peut être une piste de résolution parfois, que de ré-envoyer les fichiers de phpBB 3.2.1. ;)

Je remarque d’ailleurs, que dans les correctifs apportés dans phpBB 3.2.1 (et aussi pour 3.1.11) une faille de sécurité a été corrigée concernant les avatars à distance : https://www.phpbb.com/community/viewtop ... &t=2430926 peut-être que le correctif a introduit aussi un problème, c’est parfois le cas (à vouloir corriger des bogues cela occasionne de nouveaux problèmes).

Enfin, tu peux jeter un œil au tracker de bogues sur phpBB.com, peut-être qu’un ticket a été ouvert en ce sens : https://tracker.phpbb.com/projects/PHPBB3/issues.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10217
Enregistré le: 08 Mar 2004 à 01:40
Localisation: Sud de la France.

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 16 Oct 2017 à 19:38

Bonsoir,

merci pour ces pistes ! Je regarde tout ça et je vous tiendrai au courant dans les prochains jours !

PS : j'ai créé un accès test sur le forum en question :

- pseudo : test
- mdp : testTEST

Bonne soirée

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar galixte » 16 Oct 2017 à 20:25

J’ai effectué un test d’envoii d’avatr depuis mon PC avec le compte test fourni, il ne s’affiche pas cependant dans le code source je remarque qu’un lien est présent, le voici : http://dbhsarl.eu/forum/download/file.php?avatar=6278_1508181639.jpg aussi vérifie que ce fichier soit présent dans ton répertoire ./images/avatars/upload (qui devrait avoir les permissions en écriture, tel que 777 ou 775 au moyen d’un CHMOD).

Si il n’y est pas, tente de réenvoyer les fichiers de phpBB 3.2.1.
Modifié en dernier par galixte le 06 Déc 2017 à 05:17, modifié 1 fois.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10217
Enregistré le: 08 Mar 2004 à 01:40
Localisation: Sud de la France.

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar papajoke » 16 Oct 2017 à 20:58

bonjour,

non l'image dans avatars/download/ à normalement un autre nom xxxxxxxxxxxxx_id.(jpg|png|...)
dans ce cas xxxxxxxxxxxxxxxx_6278.jpg
ce xxxxxxxxxxxxx n'a rien à voir avec le numéro passé en paramètre :oops:

--------------
Mais l'appel à l'avatar retourne une erreur 500 alors que lorsque qu'il n'existe pas elle doit retourner une erreur 404, donc oui , je suppose que ton dossier ne doit même pas être en lecture ?
Modifié en dernier par papajoke le 16 Oct 2017 à 21:06, modifié 1 fois.
modérateur forum manjaro.fr
Avatar de l’utilisateur
papajoke
Apprenti-posteur
Apprenti-posteur
 
Messages: 194
Enregistré le: 23 Juil 2017 à 12:45

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar galixte » 16 Oct 2017 à 21:06

En local, sur mon forum de test phpBB 3.2.1 j’ai ce type de lien pour l’avatar :
http://localhost:8080/quickinstall/boards/phpbb321fr/download/file.php?avatar=2_1508181831.jpg, je ne vois pas en quoi le lien vers l’avatar que j’ai obtenu sur son forum n’est pas conforme, l’id du compte doit sans doute être 6278.

J’ai pense avoir trouvé le problème cela dit, lorsque l’on souhaite consulter un profil on ne peut pas, donc c’est bien un problème de permissions, plus particulièrement cette permission utilisateur qui n’est pas activée pour les membres : « Peut voir les profils, la liste des membres et la liste des utilisateurs connectés. ». :mrgreen:

EDIT : sur mon forum de tests, le fait d’avoir cette permission désactivée n’empêche pas d’envoyer un avatar et de le voir. :?
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10217
Enregistré le: 08 Mar 2004 à 01:40
Localisation: Sud de la France.

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 16 Oct 2017 à 23:37

Bonjour,

merci à tous !

L'avatar est bienn arrivé, et au bon endroit (images/avatars/upload), il a été renommé "2dedcb0c672d8ff6453a9712e7cd4e4f_6278.jpg" et il ressemble à ceci Image !

Le dossier upload a toutes les permissions (777) mais pas la récursion (inutile, pas de sous dossiers)

Je vais regarder tout ça, mais je dois aussi bosser (le forum n'est pas mon métier) (heureusement :D )

Je vous tiens au courant, merci !

Bonne soirée (ahh non, en fait c'est bonne matinée !)

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 18 Oct 2017 à 12:30

Bonjour,

j'ai tout recommencé et le problème est le même :(

- j'ai fermé le forum au public
- vidé le cache
- sauvegardé la base de donnée
- sauvegardé tout le répertoire "forum"
- rechargé le pack complet PHPBB 3.2.1
- paramétré Filezilla en mode binaire
-respecté la procédure décrite ici
=> seule exception, j'ai laissé en place le répertoire "download" existant sur le site, et dans lequel j'ai stocké (par erreur) pas mal de documents (il faudrait que je les déplace et que je mette à jour les liens concernés dans la BD, quelques heures de travail ...)

Après suppression du répertoire "install" le forum tourne bien (directement en français d'ailleurs), mais j'ai toujours le texte "Avatar du membre" (et non plus "Avatar de l'utilisateur") qui s'affiche, au lieu de l'avatar lui-même ...

Je continue à chercher !

Bonne journée

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 18 Oct 2017 à 21:14

Bonsoir,

je pense avoir trouvé le problème, j'ai essayé avec mon propre avatar et ça fonctionne :

1) si, dans mon profil, je sélectionne un avatar de type importé : je choisis un fichier sur mon PC, par exemple "test.png", j'envoie, et je vois ensuite avec Filezilla que phpBB a chargé ce fichier et l'a stocké dans le répertoire "forum/images/avatars/upload" avec le nom "2dedcb0c672d8ff6453a9712e7cd4e4f_2.png" (pourquoi pas si ça lui plait :) )

Et ensuite ça ne marche pas ... : phpbb génère une page html affichant "Avatar du membre" au lieu d'afficher l'image même, et quand je regarde le source de la page générée, je vois ceci :

Image

C'est à dire que la page cherche l'avatar dans un répertoire "download/file/ ..." alors qu'il est stocké dans "forum/images/avatars/upload" : c'est probablement ce qu'avait expliqué galixte ci-dessus (merci), mais je n'avais pas compris ...

2) si j'upload le fichier "2dedcb0c672d8ff6453a9712e7cd4e4f_2.png" dans le répertoire "forum/images/avatars/gallery", et que dans mon profil je sélectionne un avatar de type "Avatar de la galerie", je vois apparaître mon image d'origine, "test.png", je la choisis, et là tout fonctionne : après quelques secondes la page html est rafraichie et l'avatar est bien présent ! Le code html de la page générée est maintenant :

Image

Avec indication du bon chemin.

D'après ce que je comprends (...), il semble qu'il y ait un bug en ce qui concerne les avatars importés (mais pas de bug avec les avatars de la galerie).

Bonne soirée

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar galixte » 19 Oct 2017 à 00:06

Il est normal que le lien d’un avatar importé ressemble à ceci : http://www.domain.tld/download/file.php?avatar=148_1506200425.jpg c’est ce fichier aussi qui gère les fichiers joints, pas de problème de ce coté-ci, après il est possible que ton fichier ./.htaccess vis à vis de ta configuration serveur entre en conflit et occasionne ce problème.

Quel est le contenu de ton fichier ./.htaccess ? Quel est le contenu du même fichier dans le répertoire au-dessus ?
Modifié en dernier par galixte le 31 Oct 2017 à 04:28, modifié 1 fois.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10217
Enregistré le: 08 Mar 2004 à 01:40
Localisation: Sud de la France.

[Réglé] Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 19 Oct 2017 à 06:42

Bonjour,

merci pour cette réponse, voici le fichier ./.htaccess :

Code: Tout sélectionner
<IfModule mod_rewrite.c>
RewriteEngine on

#
# Uncomment the statement below if URL rewriting doesn't
# work properly. If you installed phpBB in a subdirectory
# of your site, properly set the argument for the statement.
# e.g.: if your domain is test.com and you installed phpBB
# in http://www.test.com/phpBB/index.php you have to set
# the statement RewriteBase /phpBB/
#
#RewriteBase /

#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

#
# The following 3 lines will rewrite URLs passed through the front controller
# to not require app.php in the actual URL. In other words, a controller is
# by default accessed at /app.php/my/controller, but can also be accessed at
# /my/controller
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.php [QSA,L]

#
# If symbolic links are not already being followed,
# uncomment the line below.
# http://anothersysadmin.wordpress.com/2008/06/10/mod_rewrite-forbidden-403-with-apache-228/
#
#Options +FollowSymLinks
</IfModule>

# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
# module mod_authz_host to a new module called mod_access_compat (which may be
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
# We could just conditionally provide both versions, but unfortunately Apache
# does not explicitly tell us its version if the module mod_version is not
# available. In this case, we check for the availability of module
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
<IfModule mod_version.c>
	<IfVersion < 2.4>
		<Files "config.php">
			Order Allow,Deny
			Deny from All
		</Files>
		<Files "common.php">
			Order Allow,Deny
			Deny from All
		</Files>
	</IfVersion>
	<IfVersion >= 2.4>
		<Files "config.php">
			Require all denied
		</Files>
		<Files "common.php">
			Require all denied
		</Files>
	</IfVersion>
</IfModule>
<IfModule !mod_version.c>
	<IfModule !mod_authz_core.c>
		<Files "config.php">
			Order Allow,Deny
			Deny from All
		</Files>
		<Files "common.php">
			Order Allow,Deny
			Deny from All
		</Files>
	</IfModule>
	<IfModule mod_authz_core.c>
		<Files "config.php">
			Require all denied
		</Files>
		<Files "common.php">
			Require all denied
		</Files>
	</IfModule>
</IfModule>


Mystérieux langage ...

Par contre, ça m'a donné une idée et cette fois, je pense avoir trouvé le problème : j'avais gardé de l'ancien phpb 3.1.6 le dossier "download" complet (dans lequel j'ai stocké par erreur un peu de bazar), y compris l'ancien fichier "file"

Code: Tout sélectionner
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

// Thank you sun.
if (isset($_SERVER['CONTENT_TYPE']))
{
	if ($_SERVER['CONTENT_TYPE'] === 'application/x-java-archive')
	{
		exit;
	}
}
else if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Java') !== false)
{
	exit;
}

if (isset($_GET['avatar']))
{
	require($phpbb_root_path . 'includes/startup.' . $phpEx);

	require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
	$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
	$phpbb_class_loader->register();

	$phpbb_config_php_file = new \phpbb\config_php_file($phpbb_root_path, $phpEx);
	extract($phpbb_config_php_file->get_all());

	if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
	{
		exit;
	}

	require($phpbb_root_path . 'includes/constants.' . $phpEx);
	require($phpbb_root_path . 'includes/functions.' . $phpEx);
	require($phpbb_root_path . 'includes/functions_download' . '.' . $phpEx);
	require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);

	// Setup class loader first
	$phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
	$phpbb_class_loader_ext->register();

	phpbb_load_extensions_autoloaders($phpbb_root_path);

	// Set up container
	$phpbb_container_builder = new \phpbb\di\container_builder($phpbb_config_php_file, $phpbb_root_path, $phpEx);
	$phpbb_container = $phpbb_container_builder->get_container();

	$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
	$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));

	// set up caching
	$cache = $phpbb_container->get('cache');

	$phpbb_dispatcher = $phpbb_container->get('dispatcher');
	$request	= $phpbb_container->get('request');
	$db			= $phpbb_container->get('dbal.conn');
	$phpbb_log	= $phpbb_container->get('log');

	unset($dbpasswd);

	request_var('', 0, false, false, $request);

	$config = $phpbb_container->get('config');
	set_config(null, null, null, $config);
	set_config_count(null, null, null, $config);

	// load extensions
	$phpbb_extension_manager = $phpbb_container->get('ext.manager');

	// worst-case default
	$browser = strtolower($request->header('User-Agent', 'msie 6.0'));

	$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');

	$filename = request_var('avatar', '');
	$avatar_group = false;
	$exit = false;

	if (isset($filename[0]) && $filename[0] === 'g')
	{
		$avatar_group = true;
		$filename = substr($filename, 1);
	}

	// '==' is not a bug - . as the first char is as bad as no dot at all
	if (strpos($filename, '.') == false)
	{
		send_status_line(403, 'Forbidden');
		$exit = true;
	}

	if (!$exit)
	{
		$ext		= substr(strrchr($filename, '.'), 1);
		$stamp		= (int) substr(stristr($filename, '_'), 1);
		$filename	= (int) $filename;
		$exit = set_modified_headers($stamp, $browser);
	}
	if (!$exit && !in_array($ext, array('png', 'gif', 'jpg', 'jpeg')))
	{
		// no way such an avatar could exist. They are not following the rules, stop the show.
		send_status_line(403, 'Forbidden');
		$exit = true;
	}


	if (!$exit)
	{
		if (!$filename)
		{
			// no way such an avatar could exist. They are not following the rules, stop the show.
			send_status_line(403, 'Forbidden');
		}
		else
		{
			send_avatar_to_browser(($avatar_group ? 'g' : '') . $filename . '.' . $ext, $browser);
		}
	}
	file_gc();
}

// implicit else: we are not in avatar mode
include($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_download' . '.' . $phpEx);

$attach_id = request_var('id', 0);
$mode = request_var('mode', '');
$thumbnail = request_var('t', false);

// Start session management, do not update session page.
$user->session_begin(false);
$auth->acl($user->data);
$user->setup('viewtopic');

if (!$config['allow_attachments'] && !$config['allow_pm_attach'])
{
	send_status_line(404, 'Not Found');
	trigger_error('ATTACHMENT_FUNCTIONALITY_DISABLED');
}

if (!$attach_id)
{
	send_status_line(404, 'Not Found');
	trigger_error('NO_ATTACHMENT_SELECTED');
}

$sql = 'SELECT attach_id, post_msg_id, topic_id, in_message, poster_id, is_orphan, physical_filename, real_filename, extension, mimetype, filesize, filetime
	FROM ' . ATTACHMENTS_TABLE . "
	WHERE attach_id = $attach_id";
$result = $db->sql_query($sql);
$attachment = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

if (!$attachment)
{
	send_status_line(404, 'Not Found');
	trigger_error('ERROR_NO_ATTACHMENT');
}
else if (!download_allowed())
{
	send_status_line(403, 'Forbidden');
	trigger_error($user->lang['LINKAGE_FORBIDDEN']);
}
else
{
	$attachment['physical_filename'] = utf8_basename($attachment['physical_filename']);

	if (!$attachment['in_message'] && !$config['allow_attachments'] || $attachment['in_message'] && !$config['allow_pm_attach'])
	{
		send_status_line(404, 'Not Found');
		trigger_error('ATTACHMENT_FUNCTIONALITY_DISABLED');
	}

	if ($attachment['is_orphan'])
	{
		// We allow admins having attachment permissions to see orphan attachments...
		$own_attachment = ($auth->acl_get('a_attach') || $attachment['poster_id'] == $user->data['user_id']) ? true : false;

		if (!$own_attachment || ($attachment['in_message'] && !$auth->acl_get('u_pm_download')) || (!$attachment['in_message'] && !$auth->acl_get('u_download')))
		{
			send_status_line(404, 'Not Found');
			trigger_error('ERROR_NO_ATTACHMENT');
		}

		// Obtain all extensions...
		$extensions = $cache->obtain_attach_extensions(true);
	}
	else
	{
		if (!$attachment['in_message'])
		{
			phpbb_download_handle_forum_auth($db, $auth, $attachment['topic_id']);

			$sql = 'SELECT forum_id, post_visibility
				FROM ' . POSTS_TABLE . '
				WHERE post_id = ' . (int) $attachment['post_msg_id'];
			$result = $db->sql_query($sql);
			$post_row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			if (!$post_row || ($post_row['post_visibility'] != ITEM_APPROVED && !$auth->acl_get('m_approve', $post_row['forum_id'])))
			{
				// Attachment of a soft deleted post and the user is not allowed to see the post
				send_status_line(404, 'Not Found');
				trigger_error('ERROR_NO_ATTACHMENT');
			}
		}
		else
		{
			// Attachment is in a private message.
			$post_row = array('forum_id' => false);
			phpbb_download_handle_pm_auth($db, $auth, $user->data['user_id'], $attachment['post_msg_id']);
		}

		$extensions = array();
		if (!extension_allowed($post_row['forum_id'], $attachment['extension'], $extensions))
		{
			send_status_line(403, 'Forbidden');
			trigger_error(sprintf($user->lang['EXTENSION_DISABLED_AFTER_POSTING'], $attachment['extension']));
		}
	}

	$download_mode = (int) $extensions[$attachment['extension']]['download_mode'];
	$display_cat = $extensions[$attachment['extension']]['display_cat'];

	if (($display_cat == ATTACHMENT_CATEGORY_IMAGE || $display_cat == ATTACHMENT_CATEGORY_THUMB) && !$user->optionget('viewimg'))
	{
		$display_cat = ATTACHMENT_CATEGORY_NONE;
	}

	if ($display_cat == ATTACHMENT_CATEGORY_FLASH && !$user->optionget('viewflash'))
	{
		$display_cat = ATTACHMENT_CATEGORY_NONE;
	}

	/**
	* Event to modify data before sending file to browser
	*
	* @event core.download_file_send_to_browser_before
	* @var	int		attach_id			The attachment ID
	* @var	array	attachment			Array with attachment data
	* @var	int		display_cat			Attachment category
	* @var	int		download_mode		File extension specific download mode
	* @var	array	extensions			Array with file extensions data
	* @var	string	mode				Download mode
	* @var	bool	thumbnail			Flag indicating if the file is a thumbnail
	* @since 3.1.6-RC1
	* @change 3.1.7-RC1	Fixing wrong name of a variable (replacing "extension" by "extensions")
	*/
	$vars = array(
		'attach_id',
		'attachment',
		'display_cat',
		'download_mode',
		'extensions',
		'mode',
		'thumbnail',
	);
	extract($phpbb_dispatcher->trigger_event('core.download_file_send_to_browser_before', compact($vars)));

	if ($thumbnail)
	{
		$attachment['physical_filename'] = 'thumb_' . $attachment['physical_filename'];
	}
	else if ($display_cat == ATTACHMENT_CATEGORY_NONE && !$attachment['is_orphan'] && !phpbb_http_byte_range($attachment['filesize']))
	{
		// Update download count
		phpbb_increment_downloads($db, $attachment['attach_id']);
	}

	if ($display_cat == ATTACHMENT_CATEGORY_IMAGE && $mode === 'view' && (strpos($attachment['mimetype'], 'image') === 0) && (strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($user->browser, 7))
	{
		wrap_img_in_html(append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $attachment['attach_id']), $attachment['real_filename']);
		file_gc();
	}
	else
	{
		// Determine the 'presenting'-method
		if ($download_mode == PHYSICAL_LINK)
		{
			// This presenting method should no longer be used
			if (!@is_dir($phpbb_root_path . $config['upload_path']))
			{
				send_status_line(500, 'Internal Server Error');
				trigger_error($user->lang['PHYSICAL_DOWNLOAD_NOT_POSSIBLE']);
			}

			redirect($phpbb_root_path . $config['upload_path'] . '/' . $attachment['physical_filename']);
			file_gc();
		}
		else
		{
			send_file_to_browser($attachment, $config['upload_path'], $display_cat);
			file_gc();
		}
	}
}


Or le dossier "download" de phpb 3.2.1 contient un nouveau fichier "file", qui est différent :

Code: Tout sélectionner
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

// Thank you sun.
if (isset($_SERVER['CONTENT_TYPE']))
{
	if ($_SERVER['CONTENT_TYPE'] === 'application/x-java-archive')
	{
		exit;
	}
}
else if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'Java') !== false)
{
	exit;
}

if (isset($_GET['avatar']))
{
	require($phpbb_root_path . 'includes/startup.' . $phpEx);

	require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
	$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
	$phpbb_class_loader->register();

	$phpbb_config_php_file = new \phpbb\config_php_file($phpbb_root_path, $phpEx);
	extract($phpbb_config_php_file->get_all());

	if (!defined('PHPBB_ENVIRONMENT'))
	{
		@define('PHPBB_ENVIRONMENT', 'production');
	}

	if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
	{
		exit;
	}

	require($phpbb_root_path . 'includes/constants.' . $phpEx);
	require($phpbb_root_path . 'includes/functions.' . $phpEx);
	require($phpbb_root_path . 'includes/functions_download' . '.' . $phpEx);
	require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);

	// Setup class loader first
	$phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
	$phpbb_class_loader_ext->register();

	// Set up container
	$phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
	$phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container();

	$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
	$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));

	// set up caching
	/* @var $cache \phpbb\cache\service */
	$cache = $phpbb_container->get('cache');

	/* @var $phpbb_dispatcher \phpbb\event\dispatcher */
	$phpbb_dispatcher = $phpbb_container->get('dispatcher');

	/* @var $request \phpbb\request\request_interface */
	$request	= $phpbb_container->get('request');

	/* @var $db \phpbb\db\driver\driver_interface */
	$db			= $phpbb_container->get('dbal.conn');

	/* @var $phpbb_log \phpbb\log\log_interface */
	$phpbb_log	= $phpbb_container->get('log');

	unset($dbpasswd);

	/* @var $config \phpbb\config\config */
	$config = $phpbb_container->get('config');

	// load extensions
	/* @var $phpbb_extension_manager \phpbb\extension\manager */
	$phpbb_extension_manager = $phpbb_container->get('ext.manager');

	// worst-case default
	$browser = strtolower($request->header('User-Agent', 'msie 6.0'));

	/* @var $phpbb_avatar_manager \phpbb\avatar\manager */
	$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');

	$filename = $request->variable('avatar', '');
	$avatar_group = false;
	$exit = false;

	if (isset($filename[0]) && $filename[0] === 'g')
	{
		$avatar_group = true;
		$filename = substr($filename, 1);
	}

	// '==' is not a bug - . as the first char is as bad as no dot at all
	if (strpos($filename, '.') == false)
	{
		send_status_line(403, 'Forbidden');
		$exit = true;
	}

	if (!$exit)
	{
		$ext		= substr(strrchr($filename, '.'), 1);
		$stamp		= (int) substr(stristr($filename, '_'), 1);
		$filename	= (int) $filename;
		$exit = set_modified_headers($stamp, $browser);
	}
	if (!$exit && !in_array($ext, array('png', 'gif', 'jpg', 'jpeg')))
	{
		// no way such an avatar could exist. They are not following the rules, stop the show.
		send_status_line(403, 'Forbidden');
		$exit = true;
	}


	if (!$exit)
	{
		if (!$filename)
		{
			// no way such an avatar could exist. They are not following the rules, stop the show.
			send_status_line(403, 'Forbidden');
		}
		else
		{
			send_avatar_to_browser(($avatar_group ? 'g' : '') . $filename . '.' . $ext, $browser);
		}
	}
	file_gc();
}

// implicit else: we are not in avatar mode
include($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_download' . '.' . $phpEx);

$attach_id = $request->variable('id', 0);
$mode = $request->variable('mode', '');
$thumbnail = $request->variable('t', false);

// Start session management, do not update session page.
$user->session_begin(false);
$auth->acl($user->data);
$user->setup('viewtopic');

if (!$config['allow_attachments'] && !$config['allow_pm_attach'])
{
	send_status_line(404, 'Not Found');
	trigger_error('ATTACHMENT_FUNCTIONALITY_DISABLED');
}

if (!$attach_id)
{
	send_status_line(404, 'Not Found');
	trigger_error('NO_ATTACHMENT_SELECTED');
}

$sql = 'SELECT attach_id, post_msg_id, topic_id, in_message, poster_id, is_orphan, physical_filename, real_filename, extension, mimetype, filesize, filetime
	FROM ' . ATTACHMENTS_TABLE . "
	WHERE attach_id = $attach_id";
$result = $db->sql_query($sql);
$attachment = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

if (!$attachment)
{
	send_status_line(404, 'Not Found');
	trigger_error('ERROR_NO_ATTACHMENT');
}
else if (!download_allowed())
{
	send_status_line(403, 'Forbidden');
	trigger_error($user->lang['LINKAGE_FORBIDDEN']);
}
else
{
	$attachment['physical_filename'] = utf8_basename($attachment['physical_filename']);

	if (!$attachment['in_message'] && !$config['allow_attachments'] || $attachment['in_message'] && !$config['allow_pm_attach'])
	{
		send_status_line(404, 'Not Found');
		trigger_error('ATTACHMENT_FUNCTIONALITY_DISABLED');
	}

	if ($attachment['is_orphan'])
	{
		// We allow admins having attachment permissions to see orphan attachments...
		$own_attachment = ($auth->acl_get('a_attach') || $attachment['poster_id'] == $user->data['user_id']) ? true : false;

		if (!$own_attachment || ($attachment['in_message'] && !$auth->acl_get('u_pm_download')) || (!$attachment['in_message'] && !$auth->acl_get('u_download')))
		{
			send_status_line(404, 'Not Found');
			trigger_error('ERROR_NO_ATTACHMENT');
		}

		// Obtain all extensions...
		$extensions = $cache->obtain_attach_extensions(true);
	}
	else
	{
		if (!$attachment['in_message'])
		{
			phpbb_download_handle_forum_auth($db, $auth, $attachment['topic_id']);

			$sql = 'SELECT forum_id, post_visibility
				FROM ' . POSTS_TABLE . '
				WHERE post_id = ' . (int) $attachment['post_msg_id'];
			$result = $db->sql_query($sql);
			$post_row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			if (!$post_row || ($post_row['post_visibility'] != ITEM_APPROVED && !$auth->acl_get('m_approve', $post_row['forum_id'])))
			{
				// Attachment of a soft deleted post and the user is not allowed to see the post
				send_status_line(404, 'Not Found');
				trigger_error('ERROR_NO_ATTACHMENT');
			}
		}
		else
		{
			// Attachment is in a private message.
			$post_row = array('forum_id' => false);
			phpbb_download_handle_pm_auth($db, $auth, $user->data['user_id'], $attachment['post_msg_id']);
		}

		$extensions = array();
		if (!extension_allowed($post_row['forum_id'], $attachment['extension'], $extensions))
		{
			send_status_line(403, 'Forbidden');
			trigger_error(sprintf($user->lang['EXTENSION_DISABLED_AFTER_POSTING'], $attachment['extension']));
		}
	}

	$download_mode = (int) $extensions[$attachment['extension']]['download_mode'];
	$display_cat = $extensions[$attachment['extension']]['display_cat'];

	if (($display_cat == ATTACHMENT_CATEGORY_IMAGE || $display_cat == ATTACHMENT_CATEGORY_THUMB) && !$user->optionget('viewimg'))
	{
		$display_cat = ATTACHMENT_CATEGORY_NONE;
	}

	if ($display_cat == ATTACHMENT_CATEGORY_FLASH && !$user->optionget('viewflash'))
	{
		$display_cat = ATTACHMENT_CATEGORY_NONE;
	}

	/**
	* Event to modify data before sending file to browser
	*
	* @event core.download_file_send_to_browser_before
	* @var	int		attach_id			The attachment ID
	* @var	array	attachment			Array with attachment data
	* @var	int		display_cat			Attachment category
	* @var	int		download_mode		File extension specific download mode
	* @var	array	extensions			Array with file extensions data
	* @var	string	mode				Download mode
	* @var	bool	thumbnail			Flag indicating if the file is a thumbnail
	* @since 3.1.6-RC1
	* @changed 3.1.7-RC1	Fixing wrong name of a variable (replacing "extension" by "extensions")
	*/
	$vars = array(
		'attach_id',
		'attachment',
		'display_cat',
		'download_mode',
		'extensions',
		'mode',
		'thumbnail',
	);
	extract($phpbb_dispatcher->trigger_event('core.download_file_send_to_browser_before', compact($vars)));

	if ($thumbnail)
	{
		$attachment['physical_filename'] = 'thumb_' . $attachment['physical_filename'];
	}
	else if ($display_cat == ATTACHMENT_CATEGORY_NONE && !$attachment['is_orphan'] && !phpbb_http_byte_range($attachment['filesize']))
	{
		// Update download count
		phpbb_increment_downloads($db, $attachment['attach_id']);
	}

	if ($display_cat == ATTACHMENT_CATEGORY_IMAGE && $mode === 'view' && (strpos($attachment['mimetype'], 'image') === 0) && (strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($user->browser, 7))
	{
		wrap_img_in_html(append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $attachment['attach_id']), $attachment['real_filename']);
		file_gc();
	}
	else
	{
		// Determine the 'presenting'-method
		if ($download_mode == PHYSICAL_LINK)
		{
			// This presenting method should no longer be used
			if (!@is_dir($phpbb_root_path . $config['upload_path']))
			{
				send_status_line(500, 'Internal Server Error');
				trigger_error($user->lang['PHYSICAL_DOWNLOAD_NOT_POSSIBLE']);
			}

			redirect($phpbb_root_path . $config['upload_path'] . '/' . $attachment['physical_filename']);
			file_gc();
		}
		else
		{
			send_file_to_browser($attachment, $config['upload_path'], $display_cat);
			file_gc();
		}
	}
}


Je viens à l'instant de transférer le nouveau fichier "file" V3.2.1 dans le répertoire "download" gardé de mon ancien V3.1.6 et j'ai retrouvé tous les avatars importés :D

Le problème me semble résolu, merci à tous pour votre aide ! et bonne journée

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar galixte » 19 Oct 2017 à 09:55

Solution étonnante, mais qui ne peut être que temporaire, ce problème reviendra assurément à l’avenir. :?
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10217
Enregistré le: 08 Mar 2004 à 01:40
Localisation: Sud de la France.

Re: Perte des avatars suite à mise à niveau phpBB 3.1.6 vers 3.2.1

Messagepar dB-] » 19 Oct 2017 à 10:25

Oui,

je suis totalement d'accord, il faut que je fasse un sérieux ménage et que j'enlève la cinquantaine de fichiers que j'ai stockés par erreur dans le répertoire "./.download" afin que ce répertoire reste réservé à phpBB, je pourrai ainsi à l'avenir réaliser les mises à jours en suivant "simplement" la procédure.

Bonne journée

dB-)
dB-]
Posteur néophyte
Posteur néophyte
 
Messages: 8
Enregistré le: 08 Sep 2014 à 07:55


Retourner vers Mises à jour/Conversions

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

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