Page 1 sur 1

problème de regex

Posté : 27 oct. 2005, 18:00
par VaN
<?php
include "functions.php";
$check_prenom = verif_post($_POST['prenom'], "prénom");
?>
<?php
// FONCTIONS CALENDAR
function verif_post($value, $champ)
{
	$pattern1 = "#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zmuvtg]|fo|me)?$#";
	$pattern2 = "#^[_a-zA-Z0-9-]$#";
	
	if(isset($value) && $value!="")
	{	
		if (!preg_match($pattern2,$value))
		{
			echo "<center><font class=\"warning\">Le $champ comporte des caractères interdits.<br />Veuillez le saisir à nouveau.</font></center><br /><br />";
		}
		else
		{
			$champ = $value;
		}
		$$champ = $value;
		echo $champ." = ".$value;
	}
	else 
	{
		echo "<center><font class=\"warning\">!! Le champ <b>$champ</b> est vide !!</font></center><br />";
	}
	
}
?>
une valeur du type 'sgsfgfd' ou 'okpkpk' me renvoie le message "Le prénom comporte des caractères interdits.
Veuillez le saisir à nouveau."
Alors je comprends pas. Idem lorsque je fait if (preg_match($pattern2,$value)) à la place de if (!preg_match($pattern2,$value))

Posté : 27 oct. 2005, 23:28
par Ripat
// si $value contient un caractère autre que [_a-zA-Z0-9-]
$pattern2 = "#[^_a-zA-Z0-9-]#"; 

//  ... code

if (preg_match($pattern2,$value))

// ... code