Problème caractère arabe

WRInaute impliqué
Bonjour,
Mon champ mysql a l'interclassement utf8_unicode_ci
Quand j'introduis un texte en arabe (ex : صباح الخير) via phpmyadmin tout marche bien, mais si j'utilise mon formulaire (insert into) l'enregistrement se fait en code :
Code:
السلام عليكم
Même sur l'affichage dans la page web ça s'affiche en code !
Merci de votre aide ;)
 
Nouveau WRInaute
Bonjour,

Je n'ai jamais eu ce problème mais j'ai quelques piste pour toi...
J'ai copier-coller le texte que tu as mis ici dans un de mes formulaire et n'ai aucun problème donc il n'y a pas de configuration spécifiques à faire.

1) Je ne pense pas que ça viennent de là mais essais de passer ton champs en utf8_bin (je n'ai jamais bien compris la différence, mais l'unicode ne comporte logiquement pas les caractères nationaux).

2) Ta page html (formulaire et affichage sont-elles bien également en UTF8 (codage du fichier dans l'éditeur + déclaration meta charset) ?

3) Utilise-tu des fonction de traitement de caractères (utf8_encode, utf8_decode, html_entities, html_special_char, real_escape_string) ? Si c'est le cas, essais de les supprimées elle ne supporte peut être pas les caractères arabes.

NB : Après vérification, le point n°1 n'a rien n'a voir ! Les test que j'avais fait sur mon formulaire avait pour jeu de caractères dans la base du "latin1_swedish_ci" (pourquoi ça j'en sait rien, habituellement je met tout en utf8_bin ce qui est sûr c'est que les caractères arabe ne sont pas présent dans ce jeu de caractères et pourtant aucun problème à l'affichage)...
 
WRInaute impliqué
Bonjour Miridan,
Après mon teste à moi je crois que le problème est dans l'insertion de données. Si j'insert le texte arabe directement via phpmyadmin dans le champs tout déroule bien, mais si j'utilise ça :
Code:
$comment=$_POST['comment'];
$requete = "INSERT INTO commentaire (comment) VALUES ('$comment'");
j'ai le texte que contient $comment en code que j'ai envoyé dans le premier poste. Donc le problème est dans l'insertion !
Merci encore de votre temps ;)
 
WRInaute accro
C'est une belle faille que tu nous montres là, penses à échapper les données envoyées à MySQL (ça ne résoudra pas ton problème).

Le champ de ton formulaire c'est un véritable textarea ou un WYSIWYG (TinyMCE, CKEditor ou autre) ?
 
WRInaute impliqué
Spout, le champ c'est du textarea, mais à l'affichage j'utilise toujours
Code:
$comment=nl2br(htmlentities($enseg['comment']));
echo $comment;
Ca reste encore une faille ? (si oui petite explication svp)
 
Discussions similaires
Haut