Php-html Problème d'accents é,ç,è,ù etc...
Résolu
pijaku
Messages postés
12263
Date d'inscription
Statut
Modérateur
Dernière intervention
-
anonym -
anonym -
Bonjour,
Je tente actuellement un premier pas en php en réalisant un livre d'or pour mon site (cf lien ci-dessous : site)...
J'ai donc, avec mon bloc notes, enregistré toutes mes pages html et php sous l'encodage utf-8.
Chacune de mes pages comporte la balise méta :
J'ai un fichier config.php qui contient le code suivant:
Le code de ma page "livredor.php" est le suivant :
Je n'ai pas écris ce code, j'ai juste ajouté ou modifié ce qui est en gras.
Ma base de donnée est construite en interclassement utf8_unicode_ci, tous les champs de cette base sont dans le même interclassement.
Or, lorsque j'essaie de mettre un commentaire sur mon livre d'or, les accents ne sont pas pris en compte et sont affichés comme dans le titre de ce sujet... Grrrr!
Que puis-je donc faire pour que les commentaires s'affichent correctement???
Merci d'avance
Je tente actuellement un premier pas en php en réalisant un livre d'or pour mon site (cf lien ci-dessous : site)...
J'ai donc, avec mon bloc notes, enregistré toutes mes pages html et php sous l'encodage utf-8.
Chacune de mes pages comporte la balise méta :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
J'ai un fichier config.php qui contient le code suivant:
<?php define("DB_SERVER","monserveurchez.1and1.com"); define("DB_NAME","mabase"); define("DB_LOGIN","madbobase"); define("DB_PASS","codesecret"); define("DB_ENC","UTF8"); ?>
Le code de ma page "livredor.php" est le suivant :
<?php require "config.php"; mysql_connect(DB_SERVER,DB_LOGIN,DB_PASS); mysql_select_db(DB_NAME); mysql_query("SET NAMES UTF8"); if(!empty($_POST)){ extract($_POST); $ip=$_SERVER["REMOTE_ADDR"]; $message=htmlentities($message); $sql="INSERT INTO lo_mess (pseudo,mail,message,ip) VALUES ('$pseudo','$email','$message','$ip')"; mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); } ?> <form method="post" action="livredor.php"> Pseudo :   <input type="text" name="pseudo"/> Adresse Mail : <input type="text" name="email"/><br/><br/><br/> Message : <br/> <textarea name="message" rows="5" cols="70"></textarea><br/><br/> <input type="submit" value="envoyer"/> </form><br/> <HR Width=80%> <?php $sql="SELECT * FROM 'lo_mess' ORDER BY id DESC"; $req= mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data=mysql_fetch_assoc($req)){ mb_internal_encoding('UTF-8'); echo "<H5>".$data["pseudo"]. "    " .date("Y/m/d")."</H5>"; echo "<H4>".utf8_decode($data["message"])."</H4><HR Width=80%>"; } mysql_close(); ?>
Je n'ai pas écris ce code, j'ai juste ajouté ou modifié ce qui est en gras.
Ma base de donnée est construite en interclassement utf8_unicode_ci, tous les champs de cette base sont dans le même interclassement.
Or, lorsque j'essaie de mettre un commentaire sur mon livre d'or, les accents ne sont pas pris en compte et sont affichés comme dans le titre de ce sujet... Grrrr!
Que puis-je donc faire pour que les commentaires s'affichent correctement???
Merci d'avance
A voir également:
- Php accent
- Accent php - Meilleures réponses
- Php accent ã© - Meilleures réponses
- E accent minuscule - Guide
- Easy php - Télécharger - Divers Web & Internet
- U accent grave clavier - Forum Clavier
- Expert php pinterest - Télécharger - Langages
- U accent grave - Forum Clavier
2 réponses
Sujet résolu....
En fait, le problème venait de mon utilisation de la fonction htmlentities, sans paramètres. La valeur par défaut de l'argument optionnel encoding est ISO-8859-1. D'où le conflit avec mon fichier en utf-8...
Nous pouvions chercher longtemps...
J'ai donc remplacé, dans le code donné ci-dessus, la ligne :
Pour plus de renseignements sur cette fonction.
Merci.
A+
En fait, le problème venait de mon utilisation de la fonction htmlentities, sans paramètres. La valeur par défaut de l'argument optionnel encoding est ISO-8859-1. D'où le conflit avec mon fichier en utf-8...
Nous pouvions chercher longtemps...
J'ai donc remplacé, dans le code donné ci-dessus, la ligne :
$message=htmlentities($message);par :
$message=htmlentities($message, ENT_QUOTES, "UTF-8");
Pour plus de renseignements sur cette fonction.
Merci.
A+
iK
Merci
marchami
merci :D