Problème avec accentuation - PHP 5.4.9

juanpa
Invité n'ayant pas de compte PHPfrance

05 déc. 2012, 23:51

Bonjour,

J'ai un forum phpBB2 héberger chez 1&1. Ces derniers change leur version php5.2 pour passer en 5.4.9

Mais voilà, depuis que nous sommes en PHP 5.4.9, tous les membres ayant des accents dans leur pseudo,
n'arrivent plus à se connecter au forum.

Dans la db c'est donc le champ username en VARCHAR 25 et interclassement latin1_german2_ci

Est-ce que ce problème est connu ? peut-on y remédier facilement ?

merci.

Cdt
MacFly

ViPHP
xTG
ViPHP | 7331 Messages

06 déc. 2012, 09:52

Que dis l'encodage défini dans le php.ini ?

Eléphant du PHP | 267 Messages

06 déc. 2012, 10:41

passe tout en utf8

ViPHP
xTG
ViPHP | 7331 Messages

06 déc. 2012, 12:25

passe tout en utf8
On ne passe pas aussi facilement une base complète en UTF-8. ;)

Mammouth du PHP | 702 Messages

06 déc. 2012, 13:09

Biensur que si que l'on passe facilement une base de donnée en utf... Il suffit d'utiliser une procédure.
Delimiter //
Drop procedure if exists changecharset//

Create procedure changecharset ()
Begin
	Declare tname varchar(255) ;
	Declare done int default 0;
	Declare tc Cursor For
		Select TABLE_NAME From information_schema.TABLES Where TABLE_SCHEMA = schema();
	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

	Open tc;
	myloop: loop
		Fetch tc into tname;
		If done = 1 Then
			Leave myloop;
		End if ;
		Set @query = Concat('Alter Table `', tname, '` convert to character set utf8 collate utf8_swedish_ci;');
		PREPARE alterstmt FROM @query; 
		execute alterstmt ;
		Deallocate prepare alterstmt;
	End loop;

	close tc;
End //

Delimiter ;

ViPHP
xTG
ViPHP | 7331 Messages

06 déc. 2012, 14:12

Et ça converti aussi le texte ou juste la configuration de l'encodage ?
Car pour avoir testé via phpmyadmin pour mysql la conversion ne converti pas le texte et on se retrouve avec des ? ou des @! et compagnie. :/

juanpa
Invité n'ayant pas de compte PHPfrance

06 déc. 2012, 23:54

Que dis l'encodage défini dans le php.ini ?
phpInfo vous voulez dire ?

j'ai ceci je sais pas si c'est se dont vous parlez :

Code : Tout sélectionner

_ENV["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.3

Dans php.ini j'ai :

Code : Tout sélectionner

AddType x-mapp-php5 .php .php3 .php4 .htm .html allow_url_fopen = On allow_url_include = On post_max_size = 10M default_socket_timeout = 120 upload_max_filesize = 20M

Petit nouveau ! | 2 Messages

07 déc. 2012, 00:05

Désolé pour le double post :?


Je crois que ma base est déjà en utf-8
Image


je ne sais pas si cela est lié mais dans mes recherches j'ai lu que HTTP_*_VARS était déprécié en php 5.x et il me semble que phpBB2 l'utilise beaucoup
phpBB 2.0.x and PHP 5
by Stefan Koopmanschap » Sat Jul 17, 2004 7:22 am

With the recent release of the official version of PHP 5, people and hosts may be switching to the latest PHP version. At this moment, the phpBB Team does not officially support running phpBB on PHP 5, as phpBB2.0.x was not written with PHP 5 in mind. However, many users have reported using it sucessfully on PHP 5 having made a configuration change in PHP to enable support for the deprecated HTTP_*_VARS arrays which is turned off by default in new PHP 5 installations. The relevant configuration option is register_long_arrays and it is decribed in the PHP Manual. phpBB 2.0.x makes use of these arrays in order to maintain backwards compatibility with PHP 3.x and early versions of PHP 4.x which is part of the original specification.

For this reason we do not support PHP 5 as platform for phpBB. It has been reported working, so you can try it. It's a risk you will be taking though.

phpBB 2.2.x will have a miminum requirement of PHP 4.1.0 and so will not require this configuration change to be made.
Donc si j'ai bien compris en mettant dans php.ini ça devrait résoudre le soucis des HTTP_*_VARS arrays

Code : Tout sélectionner

register_long_arrays = on // ou true je sais pas ^^
mais quand je mets ça j'ai une Error 500

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 déc. 2012, 10:07

LA solution serait de mettre a jour ton phpbb, pour les fonctionnalités, les corrections de bug (fonctionnel ou faille de sécurité).

Tu y serais gagnant.

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

07 déc. 2012, 12:48

c'est à dire de passer à phpBB3 ? pouerk! ^^

Mammouth du PHP | 702 Messages

07 déc. 2012, 16:07

Et ça converti aussi le texte ou juste la configuration de l'encodage ?
Car pour avoir testé via phpmyadmin pour mysql la conversion ne converti pas le texte et on se retrouve avec des ? ou des @! et compagnie. :/

Pour ma part cela m'a tout converti, n'hésite pas à l'utiliser tu pourra le constater

ViPHP
xTG
ViPHP | 7331 Messages

07 déc. 2012, 16:15

Et ça converti aussi le texte ou juste la configuration de l'encodage ?
Car pour avoir testé via phpmyadmin pour mysql la conversion ne converti pas le texte et on se retrouve avec des ? ou des @! et compagnie. :/

Pour ma part cela m'a tout converti, n'hésite pas à l'utiliser tu pourra le constater
Okay merci du vécu, je me l'enregistre dans un coin et je testerai à l'occasion. :)

Mammouth du PHP | 702 Messages

07 déc. 2012, 16:40

lol Copyright j'avais plus de 2heures à faire cette procédure ^^ (je n'y connaissais rien aux procédures mysql à l'époque)