Page 1 sur 1
probleme de regex
Posté : 26 sept. 2005, 19:42
par VaN
<?php
$pattern2 = "#^[_a-zA-Z0-9-]$#";
// on verifie si les champs obligatoires sont remplis
if(isset($_POST['login']) && $_POST['login']!="")
{
if (!preg_match($pattern2,$_POST['login']))
{
echo "<center><font class=\"warning\">Le login comporte des caractères interdits.<br />Veuillez le saisir à nouveau.</font></center><br /><br />";
}
else
{
$login = $_POST['login'];
}
}?>
un login de type 'gfgg' ou 'sqfqdfq' me renvoie le mesage d'erreur "Le login comporte des caractères interdits.<br />Veuillez le saisir à nouveau.". je ne comprends pas. probleme dans mon if() ou dans ma regex ?
Posté : 26 sept. 2005, 20:08
par Truc
salut, essaie sans la négation
if (preg_match($pattern2,$_POST['login']))
Posté : 26 sept. 2005, 20:48
par VaN
il ne marque pas le message d'erreur, mais il accepte les caractères du genre <, tous les caracteres a interdire dans des champs texte , ce que je veux éviter. Il y'a peut etre un moyen plus simple sinon ?
Posté : 26 sept. 2005, 21:07
par rami
Solution plus simple ? euh.. appeler Ripat
Plus sérieusement, connais tu a fonction
ctype_alnum?
Posté : 26 sept. 2005, 21:16
par Truc
euh.. récuperation de la doc
preg_match
$pattern2 = "/^[a-z0-9][\w.-]*$/i";
if (!preg_match($pattern2,$_POST['login']))
{
echo "<center><font class=\"warning\">Le login comporte des caractères interdits.<br />Veuillez le saisir à nouveau.</font></center><br /><br />";
}
else
{
$login = $_POST['login'];
}