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 :

Problème avec les accent lors d'une recherche dans ma base de donnée


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Problème avec les accent lors d'une recherche dans ma base de donnée
    Bonjour tous,
    Voilà j'ai un problème assez récurant et je me demande si je utilisé une bonne stratégie.

    J'ai créé un petite site qui va stocké des informations dans une base de donnée dont le nom d'une ville.

    Je vais prendre l'exemple de Genève.

    Avant voici des informations.
    mas base de donnée est utf8_general_ci
    Mes pages en utf8.

    Quand j'enregistre des données dans ma base de donnée via un formulaire, je passe la fonction htmlentities() pour que mes caractere spéciaux soit en html.
    Exemple Genève => Genève

    Dans mes pages j'ai une colonne ou je peux extraire mes information de ma base de donnée en fonction de ma ville.
    Par exemple j'ai un lien comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="recherche.php?ville=geneve">Genève</a>
    je ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="recherche.php?ville=gen&egarve;ve">Genève</a>
    car mon navigateur va s'areter à gen&.....
    je ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="recherche.php?ville=genève">Genève</a>
    car dans ma base je n'ai pas de è mais un &egrave; et en plus mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ville=isset($_GET['ville'])
    va mal interpreter le è

    Comment puis-je faire pour mon mon geneve (ou genève) soit envoyé en GET via un lien, récupéré dans une autre page et qui va me filtrer tous les champs de ma base de donnée qui contient le mot "gen&egrave;ve"?

    Mercis pour vos suggestions et aides
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Pourquoi ne fais-tu pas un htmlentities juste avant la recherche dans ta base ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="recherche.php?ville=genève">Genève</a>

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Be je viens de l'essayé et voici le probleme que ca me cause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ville=htmlentities($_GET['manifestations-et-loisirs-a']);
    echo $ville;
    ca m'affiche
    Genève
    en sachant que $_GET['manifestations-et-loisirs-a'] récupère Genève et non Gen&egrave;ve
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Quel est l'encodage sur ta page ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Essaye ca sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ville=htmlentities(utf8_decode($_GET['manifestations-et-loisirs-a']));
    echo $ville;

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Ca marche!!!
    Pourtant javais aussi essayé avec le decode, mais j'ai du le mettre avant htmlentities,
    Bref j ai essayé tant de possibilité que je suis passéa coté de celle-ci.
    Merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Je reouvre le ticket car ca bug de peu.
    (en relation avec htmlentities)

    Pour enregistrer mes données j'utilise ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_real_escape_string(htmlentities($nom_manif), $connect),
    Quand $nom_manif est egal à Paléo, au lieu d'enregistré
    Pal&eacute;o
    il enregistre
    Pa&Atilde;&copy;lo
    mais pourquoi?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    En fait, si je ne me trompe pas,
    j ai pas besoin de mettre htmlentities, puisce que ma fonction mysql_real_escape_string() le fait deja, non?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Non, y'a un truc que tu as du louper car les Pal&eacute;o et Pal&eacute;o sont toutes les 2 des expressions codées en "HTML".

    mysql_real_escape_string agit sur les caractere tel que <"> ou <'>

Discussions similaires

  1. [MySQL] Faire une recherche dans la base de données et créer de nouvelles pages
    Par japhettchabao dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/09/2014, 10h18
  2. [JDOM] Problème avec les accents français lors de création de fichier Xml
    Par jean1979 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 05/01/2012, 10h08
  3. Réponses: 1
    Dernier message: 30/05/2011, 11h36
  4. Problème avec les formules lors de la suppression d'une colonne
    Par justgreat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/08/2010, 12h19
  5. Ignorer les accents lors d'une recherche
    Par Aphox dans le forum Requêtes
    Réponses: 4
    Dernier message: 18/06/2010, 09h22

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