cs_cacoun
Messages postés59Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention21 mai 2013
-
26 sept. 2005 à 23:52
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
29 sept. 2005 à 12:32
Salut à tous,
Voici mon pb du jour.
mon serveur est en php 4.2.2
Or, je voulais utilser html_entity_decode(), mais cette fonction n'existe qu'à partir de 4.3.0.
Ma question est:
Dans ma base de donnée, une personne écrivant dans un livre d'or par exemple, à l'aide de la fonction nl2br(), transforme chaque saut de ligne en
.
Comment le retranscrire, c'est à dire qu'à chaque
, il me faudrait voir apparaitre un saut de ligne ???
cs_cacoun
Messages postés59Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention21 mai 2013 27 sept. 2005 à 00:53
la fonction html_entity_decode() n'existe pas avant php 4.3.0
Donc quand dans ma base , j'ai des
, sur la page par exemple livredor.php, il n'y a pas de saut à la ligne. Et la foncytion htmlentities() ne résout pas mon problème....
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 27 sept. 2005 à 08:41
Hello,
fais voir ton code parce qu'il y a un truc qui m'intrigue.
Quand tu récupères le texte de tes utilisateurs, tu dois faire un
htmlentities () dessus, ok, pour des raisons de sécurité (il y a
d'autres choses à faire hein, ne pas oublier addslashes() notamment).
Une fois que tu affiches ce texte, tu fais tout d'abord un nl2br ().
Ce qui va se passer dans l'ordre :
le mec tape son texte. Le htmlentities () transforme tout caractère
spécial html en son entité. Il est enregistré tel quel dans ta base.
S'il tape <bonjour, dans ta base tu auras : ≶bonjour.
S'il fait des retours à la ligne, tu auras en effet des \n\l (dépend du système quand même) invisibles.
Lorsque tu affiches, tu ne touches pas aux entités, elles seront
traduites à l'affichages : ≶bonjour s'affichera ainsi :
<bonjour. Sachant que le < ne sera pas interprété par
l'interpréteur html, juste affiché, grâce à ton htmlentities() que tu
as fait à l'ENREGISTREMENT (pas à l'affichage!). Quant aux sauts de
lignes, ils seront transformés en
grâce au nl2br()
que tu auras fait à l'AFFICHAGE de ta page, pas à l'enregistrement.
cs_cacoun
Messages postés59Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention21 mai 2013 29 sept. 2005 à 10:30
Bonjour,
effectivement je n'ai pas tout compris :
Voici mon code qui récupère le texte :
// Function htm(texte) Transforme la mise en forme Ascii d'une textarea en html
Function htm($chaine)
{
$ChaineFinale = "";
if ($chaine!="")
{
$ChaineFinale = htmlentities($chaine);
$ChaineFinale = nl2br($ChaineFinale) ;
$ChaineFinale = addslashes($ChaineFinale);
return ($ChaineFinale);
}
}
*******************************
et celle qui devrait me permettre de tout mettre au format html
//###########################################################
// Function: dhtm(chaine) - Inverse de htm
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function dhtm($chaine)
{
$ChaineFinale = "";
if ($chaine!="")
{
$ChaineFinale = str_replace(chr(10),"",$chaine);
$ChaineFinale = str_replace(chr(34),""",$ChaineFinale);
$ChaineFinale = str_replace("
",chr(10),$ChaineFinale);
$ChaineFinale = str_replace("
",chr(10),$ChaineFinale);
$ChaineFinale = stripslashes($ChaineFinale);
}
return ($ChaineFinale);
}