|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2009 Messages : 52 ![]() |
Bonjour a tous, je "comprend" (en gros) le php mais je n'ai jamais été doué pour l'appliquer, comme je voulais faire une sorte de forum (ca ressemble plus a un chat au final) j'ai pris ce qui ce rapproche d'un tuto que j'ai "adapté"
tout fonctionne bien, mais ... toujours un mai voila l'erreur que j'ai Citation:
Citation:
Code :
Si vous pouviez m'aider (sur tout m'expliquer que je me couche moins idio ce soir) Merci |
||||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() |
Question toute bête est ce que ta page est sauvegardée avec un encodage en UTF8 ?
Tu peux être en ANSI ou autre ca peut donc merdouiller. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2009 Messages : 52 ![]() |
nan j'ai vérifié je ne sais combien de fois tout est bien en UTF8
EDIT : j'ai oublié de précisé .... L'un des test j'ai directement modifié la table dans phpmyadmin pour y ajouter des é è à et ils sont tré bien affiché ... donc le problème doit être entre l'envoi et l'enregistrement php/sql |
|
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
htmlspecialchars et htmlentities sont a utiliser a l'affichage, pas pour l'insertion des données.
mysql_real_escape_string doit lui au contraire etre appliqué pour toutes les chaines que tu utilises dans ta requête. Au passage dans mysql tu as CURDATE() pour avoir la date du jour, inutile de passer par PHP. |
|
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2009 Messages : 52 ![]() |
Citation:
Citation:
EDIT : et avec _decode je reviens au problème exposé. |
||
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2009 Messages : 52 ![]() |
ra je me casse le crane même avec des str_replace.
Edit : Bon je ne trouve pas ! J'ai tenté les srt_replace mais ils ne sont pas appliqué ... je cherche je cherche .... |
|
|
00
|
|
|
#7 | |
![]() ![]() Inscription : octobre 2008 Messages : 1 505 ![]() |
Citation:
- un 1er encodage en UTF8 => é - suivi d'une interprétation erronée de l'UTF8 en ISO-8859-1 => é - suivi d'une conversion des caractères accentués en entités HTML => é - suivi d'une conversion pour échapper le code HTML lui-même (ici le caractère esperluette en l'occurence) => é Ces différentes étapes sont inutiles et néfastes si ta page HTML est en UTF8 et ta connexion avec mysql aussi. Pour faire le minimum d'opérations il faut: - pour transférer des données d'un formulaire vers la base:mysql_real_escape_string() sur les variables POST avant injection dans la requête, à l'exclusion de tout autre chose (enfin si magic_quotes_gpc est à OFF car hélas il y a cette fonctionnalité qui vient complexifier). - pour transférer de la base vers une page HTML: htmlspecialchars() et éventuellement en 2eme étape nl2br() pour que les sauts de ligne soient visualisables par l'utilisateur final. Sinon méfie toi dans le code que tu as posté, il me semble bien qu'appliquer html_entity_decode() au message avant affichage fait que la page est ouverte à tout vent en terme d'injection de code HTML/javascript malicieux, ce qui est sans doute le contraire de l'effet recherché. |
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2009 Messages : 52 ![]() |
Merci estofilo, j'ai repris tout mon code a zéro et reconfiguré ma db correctement au propre et tout fonctionne
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com