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 d'encodage UTF8 [PostgreSQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Problème d'encodage UTF8
    Bonjour,

    Je dispose d'une base de données créée avec Postgresql, et encodée en UTF-8.
    Via du PHP, je souhaite insérer des données dans cette base.

    Cependant, lorsque je souhaite insérer des données comportant des accents ou une apostrophe, cela ne fonctionne pas, j'obtiens une erreur portant sur l'insertion des données dans la base.

    Je suis bien en UTF8 dans ma base, et le charset du code HTML l'est également.
    Comment résoudre ce problème ?

    Merci par avance.
    Simon

    Voici les codes que j'utilise :

    Page 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    <?php
    session_start();  
    if (!isset($_SESSION['pseudo_prof']))  
    {  
     //$_SESSION['login'] n'existe pas le visteur est envoyer sur la page de login
    header('Location: index.php');
    exit();
    }
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
     
    <title>Adressage et Routage</title>
     
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
     
    <link rel="stylesheet" href="images/Colourise.css" type="text/css" />
     
    </head>
     
    <body>
    <div id="wrap">
     
    	<!--header -->
     
    	<div id="header">	
    <br/>
    <br/>	
    <br/>
    <br/>
    <br/>
    <font size=3> Veuillez remplir le formulaire suivant pour ajouter une question à choix multiples : </font>
    <br/>
    <form id="form1" name="form1" method="post" action="ajout_question_donnees.php">
      <p>
       <label>Rentrez votre question : </label>
        <label for="Titre"></label>
        <input name="Titre" type="text" id="Titre" maxlength="300"/>
      </p>
     
      <p>
         <label>Rentrez votre réponse JUSTE : </label>
         <input name="rep_juste" type="text" id="rep_juste" maxlength="300"/>
    	  <label>Rentrez votre réponse FAUSSE n°1 : </label>
         <input name="rep_fausse1" type="text" id="rep_fausse1" maxlength="300"/>
    	  <label>Rentrez votre réponse FAUSSE n°2 : </label>
         <input name="rep_fausse2" type="text" id="rep_fausse2" maxlength="300"/>
    	  <label>Rentrez votre réponse FAUSSE n°3 : </label>
         <input name="rep_fausse3" type="text" id="rep_fausse3" maxlength="300"/>
     
            <input type="submit" name="Valider" id="Valider" value="Envoyer">
          </p>
          </form>
    	  	  <a href="administration.php">Retour</a>
    		  <BR/><BR/><BR/>
    	  </div>	
     
     
    <div  id="nav">   
     
    			<ul>
     
    				<li id="current"><a href="index.php">Accueil</a></li>
     
    				<li><a href="choix.php">Compte</a></li>
     
    				<li><a href="cours.php">Accès Cours</a></li>
     
    				<li><a href="quiz.php">Accès Quiz</a></li>
     
    				<li><a href="stats.php">Statistiques</a></li>
     
                    <li><a href="administration.php">Administration</a></li>
     
                    <li><a href="deconnexion.php">Déconnexion</a></li>
     
     
    			</ul>		
     
    		</div>		
     
    </body>
    </html>

    Page 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
    session_start();  
    if (!isset($_SESSION['pseudo_prof']))  
    {  
     //$_SESSION['login'] n'existe pas le visteur est envoyer sur la page de login
    header('Location: index.php');
    exit();
    }
    ?>
     
     
    <?php include('fct_con.php');
    ?>
     
     
    <?php
     
    	$titre  = $_POST['Titre'] ;
    	$rep_juste = $_POST['rep_juste'];
    	$rep_fausse1 = $_POST['rep_fausse1'];
    	$rep_fausse2 = $_POST['rep_fausse2'];
    	$rep_fausse3 = $_POST['rep_fausse3'];
     
     
    	$query2 = "INSERT INTO questions (intitule_question) VALUES ('".$titre."')";
        $result2 = pg_query($query2) or die();
     
    	$query3 = "INSERT INTO reponses (intitule_reponse) VALUES ('".$rep_juste."')";
        $result3 = pg_query($query3) or die();
     
    	$query4 = "INSERT INTO reponses_fausses (intitule_reponse_fausse) VALUES ('".$rep_fausse1."')";
        $result4 = pg_query($query4) or die();
    	$query5 = "INSERT INTO reponses_fausses (intitule_reponse_fausse) VALUES ('".$rep_fausse1."')";
        $result5 = pg_query($query5) or die();
    	$query6 = "INSERT INTO reponses_fausses (intitule_reponse_fausse) VALUES ('".$rep_fausse2."')";
        $result6 = pg_query($query6) or die();
    	$query7 = "INSERT INTO reponses_fausses (intitule_reponse_fausse) VALUES ('".$rep_fausse3."')";
        $result7 = pg_query($query7) or die();
     
    	header("Location: administration.php") ;
     
    ?>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'as bien mis ton pg_set_client_encoding ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Lorsque je rajoute un :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    pg_set_client_encoding($pg_connection, "UTF-8");

    J'obtiens un message d'erreur différent lorsque je veux insérer des apostrophes :

    Warning: pg_query() [function.pg-query]: Query failed: ERROR: unterminated quoted string at or near "''')" LINE 1: INSERT INTO questions (intitule_question) VALUES (''') ^ in C:\wamp\www\projet_php6\ajout_question_donnees.php on line 26
    Il n'y a pas de soucis lorsque je rentre des caractères simples ou des accents.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par simondu43 Voir le message
    Lorsque je rajoute un :

    pg_set_client_encoding($pg_connection, "UTF-8");

    J'obtiens un message d'erreur différent lorsque je veux insérer des apostrophes :

    Warning: pg_query() [function.pg-query]: Query failed: ERROR: unterminated quoted string at or near "''')" LINE 1: INSERT INTO questions (intitule_question) VALUES (''') ^ in C:\wamp\www\projet_php6\ajout_question_donnees.php on line 26

    Il n'y a pas de soucis lorsque je rentre des caractères simples.
    essaye avec UNICODE a la place d'UTF-8 comme dans la doc

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Même erreur avec le UNICODE. Les accents passent sans soucis. Le problème vient peut-être de l'insertion de mes requêtes lors des apostrophes qui sont peut être mal interprétées.

    Mais je ne vois pas malheureusement ...

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    tu dois toujours échapper les valeurs à insérer avec pg_escape_string

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Hey trop bien cela fonctionne !!!!
    Merci beaucoup.

    Je crois que je n'aurai jamais trouvé sans vous !
    Cordialement.
    Simon

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

Discussions similaires

  1. [ZF 1.11] problème d'encodage utf8
    Par keokaz dans le forum Zend Framework
    Réponses: 3
    Dernier message: 02/09/2011, 23h42
  2. Problème d'encodage (utf8)
    Par s0ak68 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 21/01/2008, 14h21
  3. Problèmes d'encodage utf8
    Par gvdmoort dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 09/09/2007, 16h32
  4. [MySQL] Problème d'encodage utf8
    Par tomix81 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/07/2007, 22h31
  5. Problème d'encodage UTF8
    Par vg33 dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2006, 19h28

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