insert texte et accent

nini
Invité n'ayant pas de compte PHPfrance

07 juil. 2010, 22:03

Bonjour,

j'ai un souci sans doute simple avec l'insertion dans ma BDD des caractères avec accents.


pour é j'obtiens

Code : Tout sélectionner

é
le code

Code : Tout sélectionner

mysql_query("INSERT INTO photo (photo,titre,texte,date) VALUES ('".$image."','".addslashes($titre)."','".$texte."','".date("Y-m-d")."')");
merci pour l'aide

ViPHP
ViPHP | 5462 Messages

07 juil. 2010, 22:27

Bonsoir,
tu trouveras sans doute la réponse ici : faq-tutoriels/encodage-utf-t245062.html

:wink:

nini
Invité n'ayant pas de compte PHPfrance

07 juil. 2010, 22:44

J'ai cru comprendre que c'est un soucis avec SQL 5 que je teste pour la première fois.

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> dans INSERT htmlspecialchars($_POST['texte']) et la BDD utf8_general_ci

mais c'est pas mieux...

ViPHP
ViPHP | 5462 Messages

07 juil. 2010, 22:53

tu dois pas faire htmlspecialchars au moment de l'insert mais au moment de l'affichage
vérifie aussi l'encodage de ton fichier et de ton serveur :wink:
regarde aussi dans phpmyadmin si les valeurs sont corrects

nini
Invité n'ayant pas de compte PHPfrance

07 juil. 2010, 23:02

Il me semble ne pas me tromper

Code : Tout sélectionner

BDD texte longtext utf8_general_ci <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> mysql_query("INSERT INTO photo (photo,titre,texte,date) VALUES ('".$image."','".addslashes($titre)."','".htmlspecialchars($_POST['texte'])."','".date("Y-m-d")."')");
obliger de prendre UTF-8 et pas 'ISO-8859-1 ?


merci encore pour l'aide

ViPHP
ViPHP | 5462 Messages

07 juil. 2010, 23:08

faut pas faire htmlspecialchars :wink:
par contre faut faire mysql_real_escape_string sur les valeurs

nini
Invité n'ayant pas de compte PHPfrance

07 juil. 2010, 23:35

cela passe tjrs pas...

Code : Tout sélectionner

$texte=mysql_real_escape_string($texte); mysql_query("INSERT INTO photo (photo,titre,texte,date) VALUES ('".$image."','".addslashes($titre)."','".$texte."','".date("Y-m-d")."')");

ViPHP
ViPHP | 5462 Messages

07 juil. 2010, 23:38

comment sont les données dans ta base maintenant (via phpmyadmin) ?

nini
Invité n'ayant pas de compte PHPfrance

07 juil. 2010, 23:45

le é est tjrs

Code : Tout sélectionner

é
ma BDD utf8_general_ci


mon Head

Code : Tout sélectionner

header ('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

ViPHP
ViPHP | 5462 Messages

07 juil. 2010, 23:49

même dans phpmyadmin ?

ton apache est bien en UTF-8, l'encodage de ton fichier aussi (je parle pas des header)
ta connexion mysql se fais bien en UTF8 aussi ?

nini
Invité n'ayant pas de compte PHPfrance

07 juil. 2010, 23:55

ma variable n'est pas encodé juste

Code : Tout sélectionner

$texte=$_POST['texte']

Code : Tout sélectionner

@mysql_connect($hostname_dbprotect, $username_dbprotect, $password_dbprotect) or die("Connection au serveur impossible !"); @mysql_select_db($database_dbprotect);

nini
Invité n'ayant pas de compte PHPfrance

08 juil. 2010, 00:16

j'ai résolu l'insert avec

Code : Tout sélectionner

$texte=utf8_decode($texte); $texte=mysql_real_escape_string($texte);

Si quelqu'un pouvait me donner une explication ???????????????

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 00:22

j'ai résolu l'insert avec

Code : Tout sélectionner

$texte=utf8_decode($texte); $texte=mysql_real_escape_string($texte);

Si quelqu'un pouvait me donner une explication ???????????????

tout est dans le tuto,

suffis de répondre au question que je t'ai posé :wink:
ton apache est bien en UTF-8 ?, l'encodage de ton fichier aussi ?(je parle pas des header)
ta connexion mysql se fais bien en UTF8 aussi ?

nini
Invité n'ayant pas de compte PHPfrance

08 juil. 2010, 00:24

Merci pour tout