Insertion : problème avec les accents

Mammouth du PHP | 531 Messages

22 déc. 2006, 13:33

Bonjour,
J'ai un petit soucis d'accent lorsque j'insère dans ma base.

Par exmple él'autre deviens : titre �l\'autre

Le slash c'est normal puisque j'ai mis un addslashes qui n'est dailleurs peut être pas utile ? :roll:

Pour les accents je ne comprend pas... Quelqun as une idée ?

Joyeuses fêtes à tous :wink:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 déc. 2006, 14:46

C'est un problème de jeu de caractère.
Teste UTF8 ou ISO_8859-1 dans ton entete de page HTML
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 32 Messages

22 déc. 2006, 15:12

Je trouve ca assez pénible les problèmes de charset :(

Sinon comme le disais @Arthur , c'est que ta base de donnée n'utilise pas le même charset que ton serveur web .

Dommage qu'il n'y ai de solution miracle pour résoudre ces problèmes.

(A titre d'info si tu utilises apache , dans le fichier de configuration httpd.conf ou
apache2.conf suivant ta distribution) , il y a une ligne intitulé
AddDefaultCharset [charset]

ou [charset] peux valoir UTF-8 ou ISO-xxxx-x etc..

Mammouth du PHP | 531 Messages

22 déc. 2006, 15:54

C'etait bien ça le problème. Sans mes base j'étais en UTF et en iso 8859-1 dans mes entêtes.

Par contre je voudrais revenir sur stripslashes.
C'est conseillé de l'appliquer avant d'enregistrer les données ou uniquement si l'on rencontre des problèmes particulier ? :roll:

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

22 déc. 2006, 16:03

C'est conseillé de l'appliquer uniquement si tu as besoin de supprimer les anti-slash d'une chaîne :)

Par exemple, par défaut, php va protéger les apostrophes des données reçues : " l'autre " devient " l\'autre ", ce qui est très pratique pour l'insérer dans une base mysql, puisque plus besoin de le faire.
En revanche, si tu utilises oracle (ou mysqli il me semble) pour protéger une apostrophe, il faut la doubler : " l''autre "

Dans ce cas, il te faut bien supprimer les anti-slash qui ont été ajoutés par php, et ensuite faire un remplacement pour doubler les apostrophes...

mais si c'est juste pour la déco et avoir un mot de plus en couleur dans le code, c'est peut être pas la peine de l'utiliser... ca ne ferait que rendre ton code un peu plus lent :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 531 Messages

22 déc. 2006, 16:10

Oki merci pour l'explication :wink: