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 MYsql UNICODE UTF8 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut PHP MYsql UNICODE UTF8
    J'ai un souci entre mes données encodées sous Dreamweaver et mysql.
    Je pense avoir tout fait pour mais j'ai des caractères en + pour les lettres accentuées.

    Pour ce qui est de MYsql, j'ai l'option dès la connection avec la DB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		if( mysql_select_db($this->dbBase, $this->idConn ) )
    			{	//si la connexion au serveur doit se faire en utf8
    				if ($this->utf8) 
          				mysql_query("SET NAMES 'utf8'");
    				return(true) ;
    			}
    		else
    			{   // On lance une exception
    				throw new Exception("Couldn't select database") ;
     			}//end if
    D'ailleurs mon problème n'est pas (je pense) MYsql car voici le contenu lu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ======> DB Executing
    Key[0] => Value[index]
    Key[1] => Value[Bienvenue sur le site de [Jecrapahute]!]
    Key[2] => Value[Les non-membres desireux de nous contacter sont pries de le faire]
    Key[3] => Value[]
    Key[4] => Value[index]
    Key[5] => Value[Bienvenue sur le site de [Jecrapahute]!]
    Key[6] => Value[0]
    Key[7] => Value[2010-06-01 17:48:31]
    Pas de souci....

    J'encode les mêmes données dans une page!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $obj = new setScreen($PTR_session) ;
    $obj->__setParam(SCREEN   , "index"                               								) ;
    $obj->__setParam(TITLE    , "Bienvenue sur le site de " . $site . "!" 							) ;
    $obj->__setParam(SUBTITLE , "Les non-membres désireux de nous contacter sont priés de le faire"	) ;
    $obj->__setParam(FORM     , "" 																	) ;
    $obj->__setParam(MENU 	  , "index"																) ;
    $obj->__setParam(SUBMENU  , "index"																) ;
    $obj->__setParam(KLIMSG   ," Bienvenue sur le site de " . $site . "!"							) ; 
    $obj->__setParam(MUSTMBER , 0																	) ;
    $obj->execute()
    ;

    Ce sont les mêmes données sans caractères spéciaux....

    A priori je suppose Dream mais j'ai modifié les 2 options suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1) Edit => Preference
               font=UNICODE ( test a été fait aussi avec WESTERN)
     
    2) Edit => New Document
               Default encoding: Unicode (UTF8)
    Me reste le navigateur, j'utilise Firefox et Netscape (plus supporté)
    tout 2 ont une option

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tool (ou Preference) => Tab -> Content
                                     Default Font => Advanced
                                     Default Font Encoding => Unicode(UTF8)
    Et pourtant, voici ce que j'affiche après exécution via le navigateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>>>>>>>>>>>>>>>updScreen EXECUTE<<<<<<<<<<<<<<<<<<
    SCREEN => index
    TITLE => Bienvenue sur le site de [Jecrapahute]!
    SUBTITLE => Les non-membres désireux de nous contacter sont priés de le faire
    FORM =>
    MENU => index
    SUBMENU => index
    KLIMSG => Bienvenue sur le site de [Jecrapahute]!
    MUSTMBER => 0
    Page FOUND, test for Update
    Upd[1] ?
    C'est le même contenu DE MON INPUT encodé et exécuté, modifié par ????? ce qui entrainerait une mise à jour en DB intempestive et donc un contenu avarié.

    Donc, MYsql est en UTF8, Dream et mes navigateurs aussi. (r principe)... une idée du problème ?

    Merci à celui qui me mettra sur la voie

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les données sont apparement bien en UTF8 mais pas ta page.
    Est-ce que tu as bien un en-tête HTML indiquant UTF8 ?
    Est-ce que quand tu es sur cette page, ton navigateur la detecte bien en UTF8 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut MYSQL - PHP Unicode (UTF8)
    Je pense avoir touvé la solution:

    Au départ j'exécutais du PHP SEUL, càd sans HTML

    Le principal (je crois) manquait:

    Le code HTML (générté par Dream) à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    </body>
    </html>
    Voilà, ma page détecte toujours une màj mais plus pour des raisons d'accents.

    Donc, n'exécuter jamais du PHP sans HTML et charset=UTF8 !!!!

    Voilà, sans doute une solution qui pourra servir....

  4. #4
    Membre éclairé Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Par défaut PHP MYsql UNICODE(UTF8)
    Bonjour et merci de ta réponse

    Laquelle confirme ce que j'ai trouvé, d'ialleurs j'ai marqué la discussion comme résolué.

    Je n'avais pas de code HTML dans le test PHP que je voulais exécuté et donc....


    En rajoutant le code HTML et en particulier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
    	<title><?php echo $titre; ?></title>
    
    	<link href="../css/jecrapahute.css" rel="stylesheet" type="text/css">
    
    </head>
    <body class="body">
    </body>
    </html>
    Je pense avoir solutionné mon problème, je n'ai plus les doubles caratères mais bien les caractères "normaux"

    Si tu as ou si tu penses que je me trompe, n'hésite pas à me réveiller

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

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. Problème d'encodage UTF8 PHP & MySQL
    Par gogetenk dans le forum Langage
    Réponses: 6
    Dernier message: 19/10/2011, 16h19
  3. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33
  4. [php / mysql] pb if ( mysql_query() )
    Par dkmatt dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/01/2004, 20h07

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