Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & PostgreSQL
PHP & PostgreSQL Forum d'entraide sur PostgreSQL avec PHP. Avant de poster -> FAQ PostgreSQL, Cours PostgreSQL. Pour les questions concernant le moteur PostgreSQL plutôt que les fonctions PHP, merci d'utiliser le forum PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 13h48   #1
Invité de passage
 
Inscription : mai 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 18
Points : 2
Points : 2
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 :
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 :
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") ;
 
?>
simondu43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 13h54   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
t'as bien mis ton pg_set_client_encoding ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h00   #3
Invité de passage
 
Inscription : mai 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 18
Points : 2
Points : 2
Lorsque je rajoute un :

Code php :
pg_set_client_encoding($pg_connection, "UTF-8");

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

Citation:
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.
simondu43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h05   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h07   #5
Invité de passage
 
Inscription : mai 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 18
Points : 2
Points : 2
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 ...
simondu43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h10   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
tu dois toujours échapper les valeurs à insérer avec pg_escape_string
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h25   #7
Invité de passage
 
Inscription : mai 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 18
Points : 2
Points : 2
Hey trop bien cela fonctionne !!!!
Merci beaucoup.

Je crois que je n'aurai jamais trouvé sans vous !
Cordialement.
Simon
simondu43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h19.


 
 
 
 
Partenaires

Hébergement Web