interdir les balise html

Eléphant du PHP | 246 Messages

26 juil. 2005, 15:14

salut tout le monde ! J'ai un script de commentaire et le problème cest qu'on peux intégré du html ou d'autres script...

j'aimerais pouvoir interdir les <>

sinon est ce qu'il y a d'autres caractère dandereux ?

(jai chercher sur le forum avant de créé ce poste, jai bien trouver des script en java mais je savais pas les utilisé lol...)

merci d'avance !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 15:22

c'est plutôt une question PHP

tu as une fonction qui transforme tous les caractères délicats en leur équivalent HTML

htmlentities

ex : '<' devient <

donc tu passes ton commentaire dans cette fonction avant de l'enregistrer et comme ça le code éventuellement contenu ne sera pas exécuté à l'affichage :)

Eléphant du PHP | 246 Messages

26 juil. 2005, 17:39

Ca marche super ! Mais ya un problème...

quand je presse sur Enter pour aller à la ligne, ca affiche le <br>. (avec la fonction nl2br)

Que faut t'il faire pour que le retour a la ligne marche quand meme ?

merci d'avance
Modifié en dernier par Nico128 le 26 juil. 2005, 17:43, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 17:42

[Résolu] ?

Eléphant du PHP | 246 Messages

26 juil. 2005, 17:43

plus maintenant lol, jai editer...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 juil. 2005, 17:44

(jai chercher sur le forum avant de créé ce poste, jai bien trouver des script en java mais je savais pas les utilisé lol...)
Il y a ça sur ce forum ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 17:46

tu n'as qu'à utiliser la fonction nl2br() qu'à l'affichage, et ne pas enregistrer ce <br />

Eléphant du PHP | 246 Messages

26 juil. 2005, 17:47

(jai chercher sur le forum avant de créé ce poste, jai bien trouver des script en java mais je savais pas les utilisé lol...)
Il y a ça sur ce forum ?
en javascript je voulais dire...oui yen a (du moins c'est ce qu'il me semble) http://www.phpfrance.com/forums/search.php?mode=results

Eléphant du PHP | 246 Messages

26 juil. 2005, 17:50

tu n'as qu'à utiliser la fonction nl2br() qu'à l'affichage, et ne pas enregistrer ce <br />
Mais le <br /> cest pas moi qui l'ai interdit. Enfaite j'ai utilisé la fonction htmlentities pour tout le contenu du message.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 17:51

je suis plus là, montre nous ce que tu as fait

Eléphant du PHP | 246 Messages

26 juil. 2005, 17:56

ok lol, mais enfaite c'est un script que jai télécharger et qui avait dja ce problème...

alors voilà :

le formulaire

Code : Tout sélectionner

<textarea rows="6" name="message" cols="33"></textarea>
Et après pour ce <br /> ya :
<?php $message = nl2br($message); ?>
et pour afficher le message c'est :
<?php echo htmlentities($commentaire3[$i]); ?>

Eléphanteau du PHP | 43 Messages

26 juil. 2005, 18:08

il faut utiliser le nl2br après le htmlentities.

Générallement, tu fais htmlentities sur ta variable et seulement à l'affichage tu rajoutes nl2br.

Ca évite tous les ennuis comme ça.

Eléphant du PHP | 246 Messages

26 juil. 2005, 18:21

jai mis ca :
<?php
$commentaire3[$i] = htmlentities($commentaire3[$i]);
echo nl2br($commentaire3[$i]); ?>
et quand je presse sur enter au lieu de faire un retour a la ligne ca mets quand même <br />

Mammouth du PHP | 543 Messages

27 juil. 2005, 11:57

T'aurais pas fait un nl2br avant d'inserer en base de données par hasard ?

Eléphant du PHP | 58 Messages

27 juil. 2005, 12:44

lol que c'est compliqué !!!!

cherche dans ton manuel et regarde du coté de la fonction :

str_replace :)


enfin bref, je pense que ça serait plus simple et tu serais plus libre de tes écritures :).
...come from the pain...

:) I've found my home in the game :)

^^ let's frag ^^