La communauté ALL HTML c'est 58032 membres à ce jour dont 2 inscrits aujourd'hui et 31 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « PHP - SQL »

Retrouvez les publications relatives à ces discussions dans nos rubriques PHP, SQL.

les smileys ne marche pas

liste des forums liste des discussions Participer à la discussion

Photo de yoraf Message publié le samedi 05 avril 2008 à 16 h 57 par yoraf.
Bonjour,

voila en utilisant ce code sur une page en php :

<?php

function smileys($texte)
{
$in=array(
"lol" , // en colère
":-)", //sourire
";)", // clin doeuil
);

$out=array(
'<img src="Images/01.gif" />',
'<img src="Images/02.gif" />',
'<img src="Images/03.gif" />',
);

return str_replace($in,$out,$texte);
}

$message_humeur="salut ;)";


$c=nl2br(smileys($message_humeur));

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page</title>
</head>

<body>
<?php echo"<font style=\"font-size: 10px;color:#999999\">".stripslashes($c)."</font>"; ?>

</body>
</html>


je vois bien apparaitre mon smiley, tout est ok, mais j'aimerais savoir pourquoi lorsque je veux mettre ce code identique dans ma page de travail ca ne marche plus , a savoir que : "salut ;)" dans $message_humeur est un champs de ma base de donné donc sur ma page je met :

$message_humeur="$monchamp";

Pour info : $monchamp contient le texte avec les codes smileys.


Voila j'ai peut etre mon idée pourquoi ca ne marche pas mais je suis pas sur, c'est peut etre que je fais appel plusieurs fois dans ma page à $monchamp, mais je sais pas si c'est vraiment ca.

Voila j'espere quelqu'un pourra m'aider ca serait sympa !
Photo de papa6 Message publié le samedi 05 avril 2008 à 17 h 38 par papa6. Non à la guerre d'Afghanistan
Salut,

Je ne suis pas sûr d'avoir bien compris tes explications concernant ton problème. Cependant, je vais essayer :

quand tu édites le code Html de la page créée et qui ne marche pas, qu'est-ce qui s'affiche ?

On ne va pas faire le deuil du clin d'oeil, on va trouver la solution ;-)

Autre essai : placer le nl2br et le stripslashes avant l'appel à ta fonction :
[...]
return str_replace($in,$out,stripslashes($texte));
[...]
$message_humeur="salut ;)";
$c=smileys(nl2br$message_humeur));

echo"<font style=\"font-size: 10px;color:#999999\">$c</font>";
Photo de yoraf Message publié le lundi 07 avril 2008 à 12 h 37 par yoraf.
Merci de ta réponse, malheureusement j'ai esasyer avec ce que tu ma proposé mais parcontre ca marche plus sur ma page de test !

Je te rappel juste que mon code ci-dessus marche tres bien sur ma page de test mais lorsque je souhaite l'integrer sur ma page de travail (php) ou on FAIT APPEL PLUSIEURS FOIS A '$monchamp', ca ne marche plus, je me doute donc que cela vient surement du probleme que '$monchamp' soit ecrit plusieurs fois, maintenant peut etre que je me trompe...
Si vous pouvez m'aider a trouver une solution ca serait cool !

En vous remerciant !
Photo de papa6 Message publié le lundi 07 avril 2008 à 18 h 27 par papa6. Non à la guerre d'Afghanistan
Pardon, une parenthèse avait sauté dans mon code (elle était partie compléter un sourire :-))

$c=smileys(nl2br($message_humeur));

Quand tu dis que ça ne marche pas, qu'est-ce que ça t'affiche ? Y compris le code Html ("visualiser le code source")

merci pour les précisions
Photo de yoraf Message publié le lundi 07 avril 2008 à 20 h 26 par yoraf.
ok donc ca marche toujours pas :(

Je t'explique :

Lorsque je met ton code corrigé sur une page de test vide a savoir :

<?php

function smileys($texte)
{
$in=array(
"lol" , // en colère
":-)", //sourire
";)", // clin doeuil
);

$out=array(
'<img src="Images/01.gif" />',
'<img src="Images/02.gif" />',
'<img src="Images/03.gif" />',
);
return str_replace($in,$out,stripslashes($texte));

}

$message_humeur="salut ;)";

$c=smileys(nl2br($message_humeur));


echo "<font style=\"font-size: 10px;color:#999999\">$c</font>"; ?>

le message apparait bein avec le smiley, jusque la ca va !


Parcontre lorsque je met le meme code sur ma page de travail ou je fais appel a un champs de ma base de donnée, a savoir :

<?php

function smileys($texte)
{
$in=array(
"lol" , // en colère
":-)", //sourire
";)", // clin doeuil
);

$out=array(
'<img src="Images/01.gif" />',
'<img src="Images/02.gif" />',
'<img src="Images/03.gif" />',
);
return str_replace($in,$out,stripslashes($texte));

}

$message_humeur="$monchamp";

$c=smileys(nl2br($message_humeur));


echo "<font style=\"font-size: 10px;color:#999999\">$c</font>"; ?>


On voit juste apparaitre le dedut de ma page et ca bloque ; pourtant j'ai fais en sorte que la valeur $monchamp soit 'salut ;)' et ca marche pas.
Photo de yoraf Message publié le lundi 07 avril 2008 à 20 h 27 par yoraf.
peut etre maintenant le code ci-dessus est pas bon... mais pourtant il marche bien sur une page vierge !
Photo de yoraf Message publié le mardi 08 avril 2008 à 12 h 53 par yoraf.
pas de solutiion a mon probleme ?
Photo de AdrienVH Message publié le mardi 08 avril 2008 à 14 h 51 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Salut !

Peut tu me/nous dire ce qu'un echo des deux variables renvoie stp avec ce code de debug :

En utilisant les valeurs de la BDD bien sur !

<?php function smileys($texte) { $in=array( "lol" , // en colère ":-)", //sourire ";)", // clin doeuil ); $out=array( '<img src="Images/01.gif" />', '<img src="Images/02.gif" />', '<img src="Images/03.gif" />', ); return str_replace($in,$out,stripslashes($texte)); } $message_humeur = $monchamp; $c = smileys(nl2br($message_humeur)); echo $monchamp.'<br />'; echo $message_humeur.'<br />'; echo $c; ?>
On verra ce que retourne vraiment les différents variables à chaque étape de leur transformation :)

Adrien
Photo de yoraf Message publié le mardi 08 avril 2008 à 21 h 41 par yoraf.
avec ton code ca me fait la meme choses la page bloque :(

je suis deg :(
Photo de yoraf Message publié le mardi 08 avril 2008 à 21 h 46 par yoraf.
c bizarre pourtant le probleme ne ce fait que lorsque je met la valeur de ma base de donnée : $monchamp;

La seul que je vois qui ne fait pas marcher le script c'est que $monchamp; est affihcer plusieurs fois sur ma page php car $monchamp; sort dans une liste .
Photo de AdrienVH Message publié le mardi 08 avril 2008 à 22 h 29 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
On peut voir un peu plus ton code PHP avec appel de la BDD ?

Ou un lien vers la page test qui marche et un lien vers la page qui appelle la BDD qui marche pas ?

L'erreur est p'tet ailleurs que dans cette histoire de smileys...

Adrien
Photo de yoraf Message publié le mardi 08 avril 2008 à 23 h 45 par yoraf.
j'aurais bien voulu mais ,impossible de te la montrer , cependant j'ai fais un test brut avec le code de mon champs direct et on le voit bien apparaitre :

exemple : salut ;)

donc forcement ca vient du code qui li le smiley...
Photo de AdrienVH Message publié le mardi 08 avril 2008 à 23 h 59 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Ok donc ca marche sans nl2br() et sans smileys() !

Mainteant essayes avec juste smileys() et en laissant tomber pour le moment nl2br()

function smileys($texte) { $in = array( "lol", ":-)", ";)" ); $out = array( '<img src="Images/01.gif" />', '<img src="Images/02.gif" />', '<img src="Images/03.gif" />' ); return str_replace($in,$out,stripslashes($texte)); } $message_humeur = $monchamp; $c = smileys($message_humeur); echo $c;
P.S. J'ai enlever des virgules en trop dans les arrays in et out...

Adrien
Photo de yoraf Message publié le mercredi 09 avril 2008 à 00 h 33 par yoraf.
Je suis vraiment encore désolé mais ca bloque toujours la page, moi meme ca m'enerve de pas réussir ...

j'ai bien verifier que si je met par exemple juste ca dans mon code sans les smileys :

$message_humeur = $monchamp;
echo $message_humeur;

ca marche tres bien je vois bien apparaitre :

salut ;)


je n'y comprend rien a ce probleme :(
Photo de AdrienVH Message publié le mercredi 09 avril 2008 à 09 h 15 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Ok ok sinon quand tu dis ca bloque la page : ca te fait quoi ??

Page toute blanche, contenu a moitié affiché, message d'erreur PHP ?

Et sinon essaye en zappant la fonction...

$in = array('lol',':-)',';)'); $out = array('<img src="Images/01.gif" />','<img src="Images/02.gif" />','<img src="Images/03.gif" />'); $message_humeur = $monchamp; $message = str_replace($in,$out,$message_humeur); echo $message;

Adrien
Photo de telnes Message publié le mercredi 09 avril 2008 à 10 h 34 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
hello

ajoute un

error_reporting(E_ALL);

en haut de ta page ! ca t'affiche une erreur ou pas ? tu dit page blanche ! mais dans le source de la page il y a quelque chose ?

++
Photo de yoraf Message publié le jeudi 10 avril 2008 à 00 h 05 par yoraf.
Bon tres bonne nouvelle et chapeau tu a reussit !!!

j'ai repris ton code :

<?php

$in = array('lol',':-)',';)');
$out = array('<img src="Images/01.gif" />','<img src="Images/02.gif" />','<img src="Images/03.gif" />');
$message_humeur = $monchamp;
$message = str_replace($in,$out,$message_humeur);
echo $message;

?>

Et la ca marche niquel !

Quesque tu a fait exactement ?
Quel est la difference entre avant et ce code qui marche ?
Pourrez tu m'integrer sur ce code qui marche le "nl2br" ?
Et est ce que je peux utiliser ce code la tels quel ? ou pas ?

Je te remercie encore !
Photo de AdrienVH Message publié le jeudi 10 avril 2008 à 00 h 56 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Bha j'ai juste viré le stripslashes dans le str_replace je crois... et j'ai viré la mise en fonction smileys() de tout ça...

Je t'avoue que j'ai simplifié le code sans vraiment comprendre ce que j'ai résolu...

Quand un script plante, faut toujours revenir à des choses plus simples, puis les compliquer un peu et voir quand cela bug...

Là je vais partir de ce qui marche et rajouter des améliorations, à savoir le stripslashes et le nl2br : on va voir si ça plante !

<?php $in = array('lol',':-)',';)'); $out = array('<img src="Images/01.gif" />','<img src="Images/02.gif" />','<img src="Images/03.gif" />'); $message = $monchamp; $message = stripslashes($message); $message = str_replace($in,$out,$message); $message = nl2br($message); echo $message; ?>
Sinon essaye AUSSI !) l'ancien script, mais avec la soluce de telnes, on saura p'tet d'ou vient l'erreur :)

Adrien
Photo de yoraf Message publié le jeudi 10 avril 2008 à 22 h 05 par yoraf.
bah ecoute en mettant ton dernier code :

<?php

$in = array('lol',':-)',';)');
$out = array('<img src="Images/01.gif" />','<img src="Images/02.gif" />','<img src="Images/03.gif" />');
$message = $monchamp;
$message = stripslashes($message);
$message = str_replace($in,$out,$message);
$message = nl2br($message);
echo $message;

?>

tout marche bien aussi !

c'est cool je vois pas ce qui faisait planté le script !

en tous cas merci encore a toi !

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions

agenda