Page 1 sur 1

Problème insertion smiley

Posté : 31 mai 2015, 20:06
par Larker
Bonjour,

Je suis en train de mettre en place des smileys sur mon chat mais je rencontre un problème pour le remplacement.
Le smiley ne s'affiche pas mais il y a le code qui se met à la place : <img src='heureux.png'>

Je ne vois pas pourquoi la transformation ne se fait pas, voici mes codes :
Le fichier fonction.inc.php
<?php
function load_emoticons($content) {
	
	//Sourire
	$content = str_replace(":)"," <img src='heureux.png'>",$content);
	
	//Décu
	$content = str_replace(":("," <img src='/fichier/emoticons/sad.png'>",$content);
	
	//Happy
	$content = str_replace(":D"," <img src='/fichier/emoticons/biggrin.png'>",$content);
	
	//Tire la langue
	$content = str_replace(":P"," <img src='/fichier/emoticons/tongue.png'>",$content);
	
	//Sourire
	$content = str_replace(":)"," <img src='/fichier/emoticons/smile.png'>",$content);
	
	//Méfiant
	$content = str_replace("--'"," <img src='/fichier/emoticons/dry.png'>",$content);
	
	//Ninja
	$content = str_replace(":ninja:"," <img src='/fichier/emoticons/ph34r.png'>",$content);
	
	//Like a boss
	$content = str_replace(":cool:"," <img src='/fichier/emoticons/cool.png'>",$content);
	
	//Clin d'oeil
	$content = str_replace(array(";-)", ";)")," <img src='/fichier/emoticons/wink.png'>",$content);
	
	//Souril
	$content = str_replace("^^"," <img src='/fichier/emoticons/happy.png'>",$content);
	
	return $content;
}
?>
Le fichier minichat.php
<?php
session_start();
include('module/minichat/fonctions.inc.php');
if (isset($_POST['message'])) 
{
    if (!empty($_POST['message'])) 
    {
	$message = mysql_real_escape_string(utf8_decode($_POST['message']));
        $pseudo = $_SESSION['pseudo'];
		$rang = $_SESSION['rang'];
        mysql_query("INSERT INTO minichat(pseudo,message,timestamp) VALUES('$pseudo', '$message', '".time()."')");
    }
}
$reponse = mysql_query("SELECT M.id, M.pseudo, M.message, M.timestamp, A.id, A.pseudo, A.rang FROM minichat M, admin_membre A WHERE M.pseudo=A.pseudo ORDER BY M.id DESC LIMIT 0,10");
while($val = mysql_fetch_array($reponse))
{
?>
<?php if ($val['rang'] == '1')
{
    echo '<p><font color="#FF0000"><strong">'.htmlentities(stripslashes($val['pseudo'])).'</strong></font> à '.date('H\:i\:s',$val['timestamp']).' : '. htmlentities(stripslashes(load_emoticons($val['message']))) .'</p>';
}
 }
mysql_close();
?>
Merci d'avance à ceux qui pourront m'aider à repérer l'erreur. ;)

Re: Problème insertion smiley

Posté : 31 mai 2015, 20:20
par tof73
htmlentities
si tu passes du texte avec des < et >, alors ces caractères sont transformés.
une solution, utiliser load_emoticons après htmlentities et non l'inverse.

Re: Problème insertion smiley

Posté : 31 mai 2015, 20:22
par Larker
Tu veux dire avant htmlentities, car actuellement il se situe après ?

Re: Problème insertion smiley

Posté : 31 mai 2015, 20:23
par tof73
après dans l'ordre d'exécution du code.

Re: Problème insertion smiley

Posté : 31 mai 2015, 20:28
par Larker
D'accord merci.
Donc ça donnerait ça :
<?php if ($val['rang'] == '1')
{
    echo '<p><font color="#FF0000"><strong">'.htmlentities(stripslashes($val['pseudo'])).'</strong></font> à '.date('H\:i\:s',$val['timestamp']).' : '. load_emoticons(htmlentities(stripslashes($val['message']))) .'</p>';
}