[Résolu mais solution provisoire] Problème d'apostrophe

Installation & Configuration du logiciel
Répondre
Larsad
Gsup LEVEL 3
Messages : 54
Enregistré le : dim. 13 janv. 2013 00:33

Bonjour,

Quand un texte saisi (lors de la création d'un ticket) contient des apostrophes, chaque apostrophe est transformée en \'

la base mysql > Moteur de stockage = Mysam et Interclassement = utf8_general_ci

(sur le site démo de gestsup le problème ne se produit pas)

si quelqu'un a une idée ?

Merci d'avance pour toute aide.

L
Modifié en dernier par Larsad le dim. 20 janv. 2013 00:26, modifié 1 fois.
Hébergeur = Hosteur | Apache = Version 2.0.63
PHP = Version 5.2.6 | MySQL = Version 5.0.96-community-log
Architecture = i686 | Système d'exploitation = linux
GestSup = Version 2.7
Larsad
Gsup LEVEL 3
Messages : 54
Enregistré le : dim. 13 janv. 2013 00:33

Bonjour

J'ai réglé le problème

Le fil peut être fermé

Merci
Hébergeur = Hosteur | Apache = Version 2.0.63
PHP = Version 5.2.6 | MySQL = Version 5.0.96-community-log
Architecture = i686 | Système d'exploitation = linux
GestSup = Version 2.7
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

Quel solution avez vous trouvé au problème ? Merci
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Larsad
Gsup LEVEL 3
Messages : 54
Enregistré le : dim. 13 janv. 2013 00:33

Bonjour,

j'ai remplacé dans tous les fichiers (newticket.php, newticket_u.php, ticket.php, ticket_u.php,
où il y a ce code :

Code : Tout sélectionner

	// special char in sql query
	$_POST['description']  = str_replace('\\','\\\\',$_POST['description']);
	$_POST['resolution']  = str_replace("\\","\\\\",$_POST['resolution']);
	$_POST['title']  = str_replace("\\","\\\\",$_POST['title']);	
	$_POST['description'] = str_replace("'","\'",$_POST['description']); 
	$_POST['resolution']  = str_replace("'","\'",$_POST['resolution']); 
	$_POST['title']  = str_replace("'","\'",$_POST['title']); 
	$_POST['title']  = str_replace(chr(34),"\'",$_POST['title']);  
par

Code : Tout sélectionner

	// special char in sql query
	// $_POST['description']  = str_replace('\\','\\\\',$_POST['description']);
	// $_POST['resolution']  = str_replace("\\","\\\\",$_POST['resolution']);
	// $_POST['title']  = str_replace("\\","\\\\",$_POST['title']);	
	// $_POST['description'] = str_replace("'","\'",$_POST['description']); 
	// $_POST['resolution']  = str_replace("'","\'",$_POST['resolution']); 
	// $_POST['title']  = str_replace("'","\'",$_POST['title']); 
	// $_POST['title']  = str_replace(chr(34),"\'",$_POST['title']);  
et dans le fichier newticket_useradd.php, j'ai remplacé :

Code : Tout sélectionner

	//Special char rename
	$_POST['firstname'] = str_replace("'","\'",$_POST['firstname']); 
	$_POST['lastname'] = str_replace("'","\'",$_POST['lastname']);
par

Code : Tout sélectionner

	//Special char rename
	// $_POST['firstname'] = str_replace("'","\'",$_POST['firstname']); 
	// $_POST['lastname'] = str_replace("'","\'",$_POST['lastname']);
Hébergeur = Hosteur | Apache = Version 2.0.63
PHP = Version 5.2.6 | MySQL = Version 5.0.96-community-log
Architecture = i686 | Système d'exploitation = linux
GestSup = Version 2.7
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

avec ces modifications vous risquez d'oberver des message d'erreur lors de l'insertion de nom ou message possedant des accènts car la requete SQL va être tronqué.

Pouvez vous me donnez le detail de vos versions Serveur + Windows + Navigateur.

Car je n'arrive pas à reproduire le problème de mon coté.


Merci
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Larsad
Gsup LEVEL 3
Messages : 54
Enregistré le : dim. 13 janv. 2013 00:33

Bonjour,

Merci pour l'intérêt à mon problème

pour les utilisateurs, j'ai créé des comptes uniquement avec des lettres non accentuées, sans apostrophe, ni espace (c'est ce que je fais toujours, sur tous les sites que je gère)

J'ai fait des tests sur Firefox, IE, Chrome et opéra (dernières versions)
J'ai fait ces tests sur windows 7 et sur windows xp
Pour le serveur, voilà les infos :
  • Version Apache 2.0.63
    Version PHP 5.2.6
    Version MySQL 5.0.96-community-log
    Architecture i686
    Système d'exploitation linux
Base Mysql :
  • Interclassement utf8_general_ci
    Moteur de stockage MyISAM

il faut savoir la chose suivante, c'est que quand je fais les tests sur le site démo de GestSup, il n'y a aucun problème alors qu'il y en a sur mon site
donc ça ne vient pas de l'OS ou du navigateur

je pense que ça doit venir du serveur ou de mysql

Bien cordialement
Hébergeur = Hosteur | Apache = Version 2.0.63
PHP = Version 5.2.6 | MySQL = Version 5.0.96-community-log
Architecture = i686 | Système d'exploitation = linux
GestSup = Version 2.7
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

je n'arrive toujours pas à reproduire le problème sous Windows ou Linux, pouvez vous essayer de basculer votre base mysql en InnoDB et Latin_swedish_ci pour test.

Sinon essayer de mettre à niveau votre version de MySQL, ou laisser commenter les ligne de conversion, si vous n'observer pas de soucis.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Larsad
Gsup LEVEL 3
Messages : 54
Enregistré le : dim. 13 janv. 2013 00:33

Flox a écrit :Bonjour,

je n'arrive toujours pas à reproduire le problème sous Windows ou Linux, pouvez vous essayer de basculer votre base mysql en InnoDB et Latin_swedish_ci pour test.

Sinon essayer de mettre à niveau votre version de MySQL, ou laisser commenter les ligne de conversion, si vous n'observer pas de soucis.

Cdt
Bonjour,

à la première installation la BDD mysql était en InnoDB et Latin_swedish_ci
et c'est quand j'ai constaté le problème des apostrophes que j'ai converti la BDD en Mysam et utf8_general_ci

mai ça n'a pas réglé le problème

et hélas je ne peux pas mettre Mysql à niveau, car notre site est hébergé chez Hosteur (tant qu'ils n'ont pas mis à jour mysql, nous resterons à MySQL 5.0.96

nos autres sites sous joomla, spip, phpbb, cms made simple, Yacs, ne posent pas ce problème d'apostrophe (même hébergement) et avec différents éditeurs wysiwy (CKEditor,...)

Merci pour tout

Je continue de chercher une solution
Hébergeur = Hosteur | Apache = Version 2.0.63
PHP = Version 5.2.6 | MySQL = Version 5.0.96-community-log
Architecture = i686 | Système d'exploitation = linux
GestSup = Version 2.7
Larsad
Gsup LEVEL 3
Messages : 54
Enregistré le : dim. 13 janv. 2013 00:33

je n'arrive toujours pas à trouver d'où vient le problème

causes possibles élimées ;
Navigateur -> Non
Interclassement BDD -> Non
Moteur de stockage BDD -> Non
Editeur -> je ne pense pas

bref, je ne trouve toujours pas de cause possible
Hébergeur = Hosteur | Apache = Version 2.0.63
PHP = Version 5.2.6 | MySQL = Version 5.0.96-community-log
Architecture = i686 | Système d'exploitation = linux
GestSup = Version 2.7
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

bon rester avec l'échappement de l'encodage.
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Répondre