probleme de regex

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de regex

par Truc » 26 sept. 2005, 21:16

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'];
        } 

par rami » 26 sept. 2005, 21:07

Solution plus simple ? euh.. appeler Ripat ;)

Plus sérieusement, connais tu a fonction ctype_alnum?

par VaN » 26 sept. 2005, 20:48

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 ?

par Truc » 26 sept. 2005, 20:08

salut, essaie sans la négation
if (preg_match($pattern2,$_POST['login']))

probleme de regex

par VaN » 26 sept. 2005, 19:42

<?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 ?