Interdire l'envoi d'un formulaire si html

Fermé
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 - 29 sept. 2008 à 20:18
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 - 28 oct. 2008 à 18:43
Bonjour,

J'ai un mec qui m'envoie des messages avec du html dedans a partir d'un formulaire de mon site et qui pourri mon site. Le html apparait sous sa forme bute.

Comment éviter cela ? En php j'ai dejà mis ça pour le traitement du message:

$message = nl2br(htmlspecialchars($_POST['message']));

J'aimerai en fait carrement interdire l'envoi de formulaire au complet si dans le message on trouve des liens ou des adresse internet. Est-ce possible ?

Merci d'avance
A voir également:

6 réponses

Utilisateur anonyme
29 sept. 2008 à 20:20
htmlentities();
0
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 12
29 sept. 2008 à 20:28
Merci beaucoup de ta réponse mais est-ce que tu peu m'en dire plus ? Je débute en création de site. C'est certainement pour cela que je dois être une proie facile pour les "pirates".
0
Utilisateur anonyme
29 sept. 2008 à 20:35
tu le mets de partout :
htmlentities($_post['user'])
htmlentities($_post['mot de passe'])
htmlentities($_post['message']) etc.. comme ca il ne pourra plus injecter de html
0
tybmhi Messages postés 200 Date d'inscription dimanche 13 juillet 2008 Statut Membre Dernière intervention 18 septembre 2017 12
29 sept. 2008 à 20:52
Ok nickel mais est-ce correct :

$message = nl2br(htmlentities(htmlspecialchars($_POST['message'])));
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
28 oct. 2008 à 17:59
je ne peux pas tester mais ça m'a l'air correcte^^
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
28 oct. 2008 à 18:43
Bonjour.

Exemple pour supprimer toutes les balises d'un texte :
$search = array ("'<[\/\!]*?[^<?>]*?>'si");  // Supprime les balises HTML
$replace = array ("");
$texte = preg_replace($search, $replace, $texte);


Et si tu veux empêcher la validation en cas de saisie d'une balise :
if ( preg_match ("'<[\/\!]*?[^<?>]*?>'si", $texte ) ) {
   die ('Merci de ne pas utiliser de balises html');
}


Ca devrait suffire pour un filtrage "de base".
0