IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Soucis d'accents entre php et mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut Soucis d'accents entre php et mysql
    Bonjour,

    Je me doute que les accents doivent un problème récurrent pour vous, mais je ne trouve aucune explications vis à vis de cela.

    Mon souci est le suivant.
    Je recoie de mes formulaires des données avec des accents, le problème c'est qu'une fois mis dans la bdd ca donne cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
          2 Divers ./res/sujet/Divers.jpg 
          3 Economie v2 ./res/sujet/Economie.jpg 
          4 Actualitées ./res/sujet/mini_20085162534.jpg 
          5 Nouveautées v3 ./res/sujet/mini_20089174532.jpg 
          8 Reretest ./res/sujet/mini_20081110467.jpg 
          9 Message ./res/sujet/mini_200811105835.gif 
          10 remod ./res/sujet/mini_20081111031.jpg
    Et je comprend pas trop pourquoi, le plus embêtant c'est quand je resort mes données, notament dans des combos (oui la c'est la liste des sujets).
    Donc voila serai t'il possible que je stock mes accents directement ? dois-je passer par de l'encodage et si oui par quoi exactement.
    Et par hazard y'as t'il un moyen enfin comment dire une façon de faire les choses qui m'éviterais à l'avenir de me retrouver dans ce cas ? (une sorte de donnétiquette à prendre).

    Merci.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  2. #2
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Bonjour! Cela viens de l'encodage des caractère, c'est à dire utf8 ou iso, en gros si l'encodage de ta table dans ta base de donnée a en charset utf8 il faut à ce moment mettre dans ton code php:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $text=uft8_encode($text);

    Normalement plus de problème d'accent, enfin ca c'est si la table est en utf8, si elle est en latin1(enfin isio^^) il suffit de mettre:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $text=uft8_decode($text);

    Voila bon courage!
    ►Ne pas oublier le

  3. #3
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Ah oui ma table est en latin1_sweedicht quelque chose.
    Donc si je la met en utf8 j'aurai plus besoin de réflechir à cela ? et ni d'appliquer un utf8_decode() ?
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  4. #4
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Oui si ta table est en utf8 normalement pas besoin d'utiliser la fonction mais malgré tout il faut mettre dans l'en tête de la page html/php la chose suivante:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <head><title>titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>

    Comme ça les variables php seront bien de type utf8, donc à partir de la si la table est en utf8 et la page web aussi, il ne devrait pas y avoir de problème.

    Voilà j'espère que ça t'aideras!
    ►Ne pas oublier le

  5. #5
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Oui ca m'aide à la perfection merci à toi.
    Je commence à décortiquer un peu ces histoires d'encodage, c'est quand même laborieux ^^.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  6. #6
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Ca marche presque bien en faite.
    Dans ma bdd ca reste avec le code étrange.
    Et du coup mes accents dans le code html affiche un carré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while($data = mysql_fetch_assoc($req)) 
        { 
    		 echo('<div class="formforum">Nom du sujet : '.stripslashes($data['sujet_nom']));
    		 echo('<br><img src=".'.$data['sujet_image'].'"></img>');
    		 echo('<br><img src="../res/b_edit.png"></img><a href="edit_sujet.php?mode='.$mode.'&id='.$data['sujet_id'].'">'.ucfirst($mode).' cet évenement</a></div>');
    		 echo('<br><hr>');
    	} 
    	mysql_close();
    Ca me donne un carré.
    La fonction viens de fonctio.php qui ne déclare aucun charset ca viendrai de la ?
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  7. #7
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Et en faisant ça en SQL :
    Puis ta requête, ça affichera correctement tes caractères spéciaux ?

  8. #8
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    En faite toutes les données venant de MySQL sont bonnes ca affiché bien les accents.
    Elles sont stocké sous la forme @© mais dans la page il apparait bien é.
    J'aurai voulu que le é apparaise directement dans la bdd.

    Et ensuite à coté de cela les é mis directement dans le code donné des carrés, mais là la source n'est pas la bdd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo('<br><img src="../res/b_edit.png"></img><a href="edit_sujet.php?mode='.$mode.'&id='.$data['sujet_id'].'">'.ucfirst($mode).' cet évenement</a></div>');
    exemple la le cet évenement.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  9. #9
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Envoie un header par PHP qui force la page à afficher en UTF8 sinon.

  10. #10
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    J'ai mis cela en haut de ma page fonction, et c'est aussi dans toute mes pages maitenant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Panneau d'adminsitration de MEDEF SENIORS Fonctions</title>
    <link href="./res/medef.css" rel="stylesheet" type="text/css">
    </head>
    Mais bon ca reste un carré, vais mettre &eacute; je sent, ce qui me tue c'est comment u truc aussi simple que des accents me gache tout un dev.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  11. #11
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Envoie ça avant ton affichage html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: text/html; charset=UTF-8');

  12. #12
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Ca ne sera pas la peine, je sais pas pourquoi lors du passage en utf-8 il a viré tous les accents de mon code (sur toutes les pages).
    Du coup le simple fait de les réécrires a tout résolu.

    (C'est à ni rien comprend -_-).
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] accents sur php et mysql
    Par djabara dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/05/2008, 10h32
  2. [MySQL] problème entre php et MySql
    Par n0unours dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/05/2007, 09h46
  3. probleme entre php et mysql
    Par jsdar dans le forum Installation
    Réponses: 3
    Dernier message: 09/03/2007, 22h32
  4. Problème entre php et mysql
    Par kornmuse90 dans le forum Apache
    Réponses: 17
    Dernier message: 24/04/2006, 15h52
  5. Problème entre PHP et MySQL
    Par kornmuse90 dans le forum Installation
    Réponses: 12
    Dernier message: 19/04/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo