[AJAX] Caractères illisibles (à,ç ê)
Bonjour,
J'essaie de faire un petit chat pour un besoin. Le chat est vraiment simple! Juste un textarea qui affiche les messages d'une base de données.
Voici les différents code :
secure_variable.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <?php
function secureVariable($nomVariable)
{
return mysql_real_escape_string(htmlentities($nomVariable,ENT_QUOTES));
}
function showVariable($nomVariable)
{
return stripslashes(html_entity_decode($nomVariable,ENT_QUOTES));
}
?> |
index.php
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
include("session.php");
include("connect.php");
include("secure_variable.php");
?><!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>Bienvenue sur le Chat</title>
<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
<script type='text/JavaScript'>
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function afficherMessage(){
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById('message').value=xhr.responseText;
l_div = document.getElementById('message');
l_div.scrollTop = l_div.scrollHeight;
}
}
xhr.open("POST","ajax.php",true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
document.getElementById('messageEnvoie').focus();
}
setInterval( function()
{ afficherMessage(); }, 5000 );
</script>
</head>
<body onload='afficherMessage()'>
<?php
if (isset($_POST['messageEnvoie'])) // Si les variables existent
{
if ($_POST['messageEnvoie'] != NULL) // Si on a quelque chose à enregistrer
{
$date_message=date('Y-m-d');
$heure_message=date('H:i:s');
//if((isset($_SESSION['dernier_message']) AND ($_SESSION["dernier_message"]!= $_POST['message'])));
//{
// D'abord, on se connecte à MySQL
mysql_connect($serveur,$login,$mdp);
mysql_select_db($bd);
// Ensuite on enregistre le message
$sql="INSERT INTO message (nom_membre,message,date_message,heure_message) VALUES('".secureVariable($_SESSION['nomMembre'])."', '".secureVariable($_POST['messageEnvoie'])."','".secureVariable($date_message)."','".secureVariable($heure_message)."')";
mysql_query($sql);
$_SESSION['dernier_message']=$_POST['message'];
// On se déconnecte de MySQL
mysql_close();
//}
}
}
?>
<textarea READONLY ROWS="25" COLS="125" id="message">
</textarea>
<form action="index.php" method="POST">
<p>
Message : <input type="text" id="messageEnvoie" name="messageEnvoie" size=125/> <input type="submit" value="Envoyer" onclick='afficherMessage()' />
</p>
</form>
</body>
</html> |
ajax.php
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
| <?php
include("session.php");
include("connect.php");
include("secure_variable.php");
mysql_connect($serveur,$login,$mdp);
mysql_select_db($bd);
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM message ORDER BY id_message ASC");
// On se déconnecte de MySQL
mysql_close();
while ($donnees = mysql_fetch_array($reponse))
{
list($month, $day, $year) = split('[/.-]', showVariable($donnees['date_message']));
?>
Le <?php echo $day.'/'.$month.'/'.$year ?> à <?php echo showVariable($donnees['heure_message']); ?> <?php echo showVariable($donnees['nom_membre']); ?> a dit:
<?php echo showVariable($donnees['message']);?>
<?php
}
?> |
Voici le soucis :
Je tape cette phrase :
Apprendre la programmation par soi-même c'est "trop" dur! Je crie à l'aide !!
Dans la base de données, c'est affiché comme ceci:
Apprendre la programmation par soi-même c\'est \"trop\" dur! Je crie à l\'aide !!
Ce que j'obtiens à l'affichage :
Apprendre la programmation par soi-m�me c'est "trop" dur! Je crie � l'aide !!
Je n'arrive pas à résoudre ce soucis.
Quelqu'un peut-il m'aiguiller ?
Merci