8795 sujets

Développement web côté serveur, CMS

Modérateur
Salut tout le monde,

Là, je suis en train de faire un petit livre d'or pour une amie et lorsque je fais ma fonction de validation de formulaire et que j'inclus ma regex, elle ne fonctionne pas. Si elle est en dehors c'est bon. Je ne comprends d'où vient ce soucis.

function valider_form(){
	global $nom;
	global $courriel;
	global $titre;
	global $message;
	if (strlen($nom)<2||strlen($titre)<2||strlen($message)<2||$noms=="Nom ou pseudo :"||$courriel=="Courriel (facultatif) :"||$titre=="Titre"||$message=="Message :"){
		return false;
		}elseif (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $courriel)) {
			return true;
		}else{
			return true;
		}
}



Je vous remercie de me dire d'où cela peut provenir. Smiley smile

@+
Modifié par Nolem (17 Feb 2008 - 17:40)
salut nolem.

j'ai d'abord testé le preg_match isolé.

là pas de probleme sauf que un courriel comme nol.em@fr.ee.fr passe

me semble que le point dans fr.ee est discutable quoique je ne connais pas la définition exacte d'un email valide.

sinon j'ai testé ta fonction globalement. et là true true true true..... et au fond c'est normal ta fonction retourne true si le preg_match est bon et true s'il est faux....
( sauf bien sur si le message fait moins de 2 caractere,idem titre,etc... )

je pense que c'est là le pb.

si ce n'est pas le cas explicite ce que tu veux dire par ne fonctionne pas c'est trop vague.

sinon erreur insignifiante et qui change rien

||$noms=="Nom ou pseudo :"||
je pense qu'il y a un s de trop a $noms

Edit: sinon voir du coté des variables globales. les variables globales je dis pas non mais cet exemple me semble pas necessité des variables globales.... utiliser de préférence des arguments de fonctions.
Modifié par CPascal (14 Feb 2008 - 21:30)
Modérateur
Salut,

J'ai réussi à trouver. Merci CPascal pour ton aide et tes conseils avisés. Tu m'as mis sur la voie : la fonction renvoi toujours true.
J'ai fini par faire ceci et maintenant c'est bon, ça fonctionne "impec".
function valider_form($nom,$courriel,$titre,$message){
	if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $courriel)) {
		return true;
	}else{
		return false;
	}if (strlen($nom)<2||strlen($titre)<2||strlen($message)<2||$noms=="Nom ou pseudo :"||$titre=="Titre"||$message=="Message :"){
		return false;
	}else{
		return true;
	}
}


@+
Modifié par Nolem (17 Feb 2008 - 17:49)