Problème d'encodage UTF-8 entre PHP et BDD
simondu43
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Melooo Messages postés 1405 Date d'inscription Statut Membre Dernière intervention -
Melooo Messages postés 1405 Date d'inscription Statut Membre Dernière intervention -
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 apostrophes, cela ne fonctionne pas, j'obtiens une erreur portant sur l'insertion des données dans la base. Tout se déroule bien avec les accents, seules les apostrophes bloquent !
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 :
Page 2 :
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 apostrophes, cela ne fonctionne pas, j'obtiens une erreur portant sur l'insertion des données dans la base. Tout se déroule bien avec les accents, seules les apostrophes bloquent !
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 :
<?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 :
<?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") ; ?>
A voir également:
- Problème d'encodage UTF-8 entre PHP et BDD
- Clé windows 8 - Guide
- Mixcraft 8 - Télécharger - Création musicale
- Internet explorer 8 - Télécharger - Navigateurs
- Easy php - Télécharger - Divers Web & Internet
- Windows 8 pro - Télécharger - Systèmes d'exploitation
1 réponse
Bonjour,
Tu peux utiliser addslashes ou faire ceci :
Code trouvé la :
https://forums.commentcamarche.net/forum/affich-401440-insertion-d-apostrophe-dans-mysql-pas-bien
Tu peux utiliser addslashes ou faire ceci :
$sql="INSERT INTO table (commentaire) VALUES (\"$commentaire\");
Code trouvé la :
https://forums.commentcamarche.net/forum/affich-401440-insertion-d-apostrophe-dans-mysql-pas-bien