Bonjour,

(Je debute en PHP, excusez-moi...)

J'ai suivi le tuto Tchat PHP/Ajax et tout fonctionne après pas mal de soucis... sauf une chose que je n'arrive pas à resoudre :

lorsque je tape un message sans accent tout fonctionne... (Nickel)
Par contre lorsque je tape une message avec accent : "é" ou "à" ou "ç" alors il ne m'affiche pas du tout le message, même pas une partie : Rien de rien !

J'ai essayer de voir si cela venait de mysql, j'ai mis la base de données et les tables en UTF-8 puis en UTF-8 unicode ci etc... mais sans resultat
J'ai aussi essayer d'enlever htmlentities mais rien à faire... et là vraiment je ne vois pas de solution pour mon humble niveau en php

J'ai vraiment besoins d'aide, j'attend vos reponses avec impatience. Merci d'avance...

Voici le code de Tchat.php :
<code>***
<?php
session_start();
if(!isset($_SESSION["pseudo"]) || empty($_SESSION["pseudo"])){
header("location:index.php");
}
include "connect.php";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="stylesheet" href="theme/style.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/tchat.js"></script>
<script type="text/javascript">
<?php
$sql = "SELECT id FROM messages ORDER BY id DESC LIMIT 1";
$req = mysql_query($sql) or die(mysql_error());
$data=mysql_fetch_assoc($req);
?>
var lastid = <?php echo $data["id"]; ?>
</script>
</head>

<body>
<div id="conteneur" style="width:94%; margin-bottom:200px;">
<h1>Mon tchat, connectez en tant que <?php echo $_SESSION["pseudo"]; ?></h1>
<div id="connected">

</div>

<div id="tchat">
 <?php
    $sql = "SELECT * FROM messages ORDER BY date DESC LIMIT 15";
    $req = mysql_query($sql) or die(mysql_error());
    $d = array();
    while($data = mysql_fetch_assoc($req)){
        $d[] = $data;
    }
    for($i=count($d)-1;$i>=0;$i--){         
    ?>
        <p><strong><?php echo $d[$i]["pseudo"]; ?></strong> (<?php echo date("d/m/Y H:i:s",$d[$i]["date"]); ?>) : <?php echo htmlentities(utf8_decode($d[$i]["message"])); ?></p>
    <?php
    }
 ?>
</div>

</div>

<div id="tchatForm" style="position:fixed;bottom:0;width:100%;">
<form method="post" action="#">
<div style="margin-right:110px;">
<textarea name="message" style="width:100%;"></textarea>
</div>
<div style="position:absolute; top:12px; right:0;">
<input type="submit" value="Envoyer"/>
</div>
</form>
</div>
</body>
</html>
</code>***

Voici le code de tchatAjax.php :
<code>***
<?php
session_start();
require("connect.php");
$d =array();

if(!isset($_SESSION["pseudo"]) || empty($_SESSION["pseudo"]) || !isset($_POST["action"])){
$d["erreur"] = "Vous devez être connecté pour utiliser le tchat";
}
else{

extract($_POST);
$pseudo = mysql_real_escape_string($_SESSION["pseudo"]);

/**
 * Action : addMessage
 * Permet l'ajout d'un message
 * */
if($_POST["action"]=="addMessage"){
    $message = mysql_real_escape_string($message);
    $sql = "INSERT INTO messages(pseudo,message,date) VALUES ('$pseudo','$message',".time().")";
    mysql_query($sql) or die(mysql_error());
    $d["erreur"] ="ok";
}

/**
 * Action : getMessages
 * Permet l'affichage des dernier messages
 * */
if($_POST["action"]=="getMessages"){
    $lastid = floor($lastid);
    $sql = "SELECT * FROM messages WHERE id>$lastid ORDER BY date ASC";
    $req = mysql_query($sql) or die(mysql_error());
    $d["result"] = "";
    $d["lastid"] = $lastid;
    while($data = mysql_fetch_assoc($req)){
         $d["result"] .= '<p><strong>'.$data["pseudo"].'</strong>('.date("d/m/Y H:i:s",$data["date"]).') : '.htmlentities(utf8_decode($data["message"])).'</p>';
         $d["lastid"] = $data["id"];
    }
    $d["erreur"]="ok";
}

/**
 * Action : getConnected
 * Permet l'affichage des derniers connectés
 **/
if($_POST["action"]=="getConnected"){
    $now = time();
    $sql = "SELECT pseudo FROM connected WHERE $now-date<60";
    $req = mysql_query($sql) or die(mysql_error());
    $d["result"] = "Connectés : ";
    while($data = mysql_fetch_assoc($req)){
        $d["result"] .= $data["pseudo"].", ";
    }
    $d["result"]  = substr($d["result"],0,-2);

    $sql = "UPDATE connected SET date = $now WHERE id={$_SESSION["idTchat"]}";
    mysql_query($sql) or die(mysql_error());

    $d["erreur"] = "ok";
}

}

echo json_encode($d);
?>
</code>***

Aucune réponse