Problème d'apostrophe dans un chat php/ajax

Nouveau WRInaute
Bonjour,

Je souhaite mettre en place un chat sur mon site. J'ai trouvé un chat qui me convient sur ce lien : http://yensdesign.com/2009/01/create-a-shoutbox-using-php-and-ajax-jquery/

Après installation du chat, celui ci fonctionne mais j'ai un petit problème lorsqu'une apostrophe est dans un message. Par exemple c'est affiche c\'est.

Après une recherche j'ai bien trouvé qu'il fallait ajouter addslashes dans le code php mais étant novice en php, je ne sais pas ou placer ce code. Pouvez vous m'aider ?

Le chat fonctionne sur une page html couplée à une page php pour la publication des messages. Voici le code de la page php :
Code:
/************************
	CONSTANTS
/************************/
define("HOST", "YOUR HOST");
define("USER", "YOUR USER");
define("PASSWORD", "YOUR USER PASSWORD");
define("DB", "YOUR DATABASE");
/************************
	FUNCTIONS
/************************/
function connect($db, $user, $password){
	$link = @mysql_connect($db, $user, $password);
	if (!$link)
	    die("Could not connect: ".mysql_error());
	else{
		$db = mysql_select_db(DB);
		if(!$db)
			die("Could not select database: ".mysql_error());
		else return $link;
	}
}
function getContent($link, $num){
	$res = @mysql_query("SELECT date, user, message FROM shoutbox ORDER BY date DESC LIMIT ".$num, $link);
	if(!$res)
		die("Error: ".mysql_error());
	else
		return $res;
}
function insertMessage($user, $message){
	$query = sprintf("INSERT INTO shoutbox(user, message) VALUES('%s', '%s');", mysql_real_escape_string(strip_tags($user)), mysql_real_escape_string(strip_tags($message)));
	$res = @mysql_query($query);
	if(!$res)
		die("Error: ".mysql_error());
	else
		return $res;
}
/******************************
	MANAGE REQUESTS
/******************************/
if(!$_POST['action']){
	//We are redirecting people to our shoutbox page if they try to enter in our shoutbox.php
	header ("Location: index.html");
}
else{
	$link = connect(HOST, USER, PASSWORD);
	switch($_POST['action']){
		case "update":
			$res = getContent($link, 20);
			while($row = mysql_fetch_array($res)){
				$result .= "

	<li><strong>".$row['user']."</strong><img src="\" alt="\"-\"" />".$row['message']." <span class="\"date\"">".$row['date']."</span></li>

";
			}
			echo $result;
			break;
		case "insert":
			echo insertMessage($_POST['nick'], $_POST['message']);
			break;
	}
	mysql_close($link);
}

Merci d'avance à ceux qui me diront ou placer addslashes.
 
WRInaute accro
c'est un stripslashes plutot (tu veux l enlever) et d'un coup d'oeil très rapide, je dirai ici :
<li><strong>".$row['user']."</strong><img src="\" alt="\"-\"" />".$row['message']." <span class="\"date\"">".$row['date']."</span></li>
au niveau de $row['message']
non ?
 
Nouveau WRInaute
Merci de ta réponse rapide.

Comme j'ai précisé plus haut, je suis très novice en php. En fait je suis graphiste de formation mais notre développeur est parti donc je me débrouille comme je peux...

Qu veux tu dire par : au niveau de $row['message'] ?

Le code est il stripslashes $row['message'] ?

Car je viens d'essayer et cela ne fonctionne pas, d'ailleurs les messages ne s'affichent plus du tout...

Pourrais tu me donner le code exact avec striplashes ?

Merci
 
Discussions similaires
Haut