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") ;
 
?>