8795 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un petit problème de regex.
Lors de l'envoi d'un formulaire qui contient un textarea, je voudrais faire un contrôle PHP pour vérifier que celui-ci ne contient pas de tag Html.

En javascript mon regex fonctionne : /<(.|\n)*?>/g

mais en Php il semble que la même chose ne soit pas possible. (le match global "g" n'est pas reconnu)

Merci de votre aide.
Je viens d'essayer, cela ne fonctionne pas Smiley bawling

texte tapé :
qsddsd<html>

contrôle

if (empty($msg)){
		$valid=false;
		$erreurMsg = "Veuillez saisir un message.";
	}elseif (!preg_match("/<[^>]+>/si",$msg)){
		$erreurNom = "Veuillez entrer un message valide.";
	}
tu mets un point d'exclamation devant ? C'est la négation ...

là tu fais "si il n'y a pas de HTML, je dis que le message n'est PAS valide"
or tu veux "si il y a du HTML, je dis que le message n'est pas valide"
Oups...

Je regarde demain, ce doit être un reste des tests "inverse" que j'ai fais (test des autres caractères possibles).

Dur journée aujourd'hui ! que des conneries (parenthèse,...) qui font perdre du temps et me mettre hors délai... C'est mon Scrum master qui va être content... Smiley langue

Je dirais demain si c'est bon donc.Merci.
Bonjour,

je viens de faire la modification (suppression du !) :

if (empty($msg)){
		$valid=false;
		$erreurMsg = "Veuillez saisir un message.";
	}elseif (preg_match("/<[^>]+>/si",$msg)){
		$erreurNom = "Veuillez entrer un message valide.";
	}


Mais lors de test de saisie:
"Tutu" > pas de message : Correct
"Tutu <html> : pas de message : Incorrect
Ouf, toujours une bétise du copier coller entre mes différents contrôles


	if (empty($msg)){
		$valid=false;
		$erreurMsg = "Veuillez saisir un message.";
	}elseif (preg_match("/<[^>]+>/si",$msg)){
		$valid=false;
		$erreurMsg = "Veuillez entrer un message valide.";
	}
	

il manquait le valid=false, et mon $erreurMsg était $erreurNom (donc affiché pour un autre input)

Merci pour l'aide !!