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 :

Php, Oracle et les accents


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 13
    Points
    13
    Par défaut Php, Oracle et les accents
    Bonjour à tous,

    Avant toutes chose je m'excuse de ce post sur un sujet maintes fois débattu. J'ai parcouru attentivement le forum et lu les différents tutos sur le sujet mais n'arrivant toujours pas à résoudre mon problème, je viens aujourd'hui vers vous en quête d'une explication. Si celle-ci existe déjà sur ce site, n'hésitez pas à sortir les fouets (et si possible le lien qui y conduit...)

    Pour rentrer dans le vif du sujet, ma situation est la suivante :

    J'utilise des pages PHP pour réaliser une recherche dans une base de données ORACLE en filtrant les résultats selon différents paramètres. En bref, la structure de ces pages est la suivante :


    - Page principale "recherche.php" qui permet la sélection des différents filtres, la recherche/l'export des résultats et l'affichage de ceux-ci dans un tableau.

    - Page de connexion et d'initialisation des filtres (include au début de "recherche.php"). La connexion est réalisée de la manière suivante : $conn=new PDO("odbcxxx", "nom_base", "mdp_base");

    - Page de déconnexion.

    - Page de création de la requête filtrée.


    Mon problème est simple : si les accents s'affichent bien dans la partie "figée" réalisée en HTML, les éléments récupérés dans la base de données par une requête font "disparaître" ceux-ci (par exemple le mot "équipement" devient equipement"). À priori ce problème n'est pas bloquant, mais il provoque un problème dans le filtrage car ce filtrage peut être fait manuellement et ne fonctionne alors pas. En effet, si on lance une recherche sur "équipement" OU "equipement",
    elle ne ramène jamais le résultat.


    Après avoir effectué les recherches décrites plus haut, j'ai testé les solutions suivantes (séparément et ensemble) :

    1 - Toutes les pages .php comportent :

    <?php header( 'content-type: text/html; charset=utf-8' ); ?>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    2 - Tous les fichiers sont enregistrés en UTF 8 sans BOM

    3 - Exécution de la commande suivante juste après la connexion :

    "$conn>exec("set names utf8");"

    Rien de tout cela n'a réglé le problème... J'ai également essayé de creuser au niveau de la base de données mais je ne suis pas habitué à Oracle et j'ai du mal à comprendre son fonctionnement. En passant par SQLDeveloper, je peux quand-même constater que les accents sont bien présents...

    Si vous avez une idée d'une piste pour régler ce problème, toute réponse est la bienvenue. Merci d'avance et bonne journée à tous.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par Wingelin Voir le message
    En passant par SQLDeveloper, je peux quand-même constater que les accents sont bien présents...
    et en affichant directement le résultat de la requête dans le code PHP, les accents sont toujours là ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 13
    Points
    13
    Par défaut
    En affichant la requête, les accents sont bien conservés dans mes conditions (like '%é%' par exemple) mais en affichant le résultat ceux-ci disparaissent ("équipement" devient "equipement) et c'est bien là le problème !

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut
    Salut, si vous utiliser WampServer, il faut juste supprimer le point-virgule du php.ini.

Discussions similaires

  1. php : str_shuffle() et les accents
    Par xRayane dans le forum Langage
    Réponses: 7
    Dernier message: 14/01/2013, 18h51
  2. [SQL-Server] Les accents ne passent pas entre MS SQL et PHP ?
    Par stephane9422 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 17/11/2008, 15h22
  3. PHP-GTK et les accents
    Par motenai dans le forum GTK+ avec PHP
    Réponses: 2
    Dernier message: 04/08/2008, 23h17
  4. oracle 10g XE n'accepte pas les accents
    Par gnaoui_9999 dans le forum Oracle
    Réponses: 6
    Dernier message: 27/08/2007, 17h47
  5. [PHP-JS] Les accents, encore les accents.
    Par menuge dans le forum Langage
    Réponses: 6
    Dernier message: 30/05/2007, 12h39

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