Une conditions ne fait pas effet

yann1123 Messages postés 109 Statut Membre -  
yann1123 Messages postés 109 Statut Membre -
Bonjour, je suis entrain de faire des vérifications en php sur mon formulaire d'inscriptions, Donc la fonctions marche très bien seulement ya juste une seule conditions qui ne marche pas. Donc en français c'est "si la longuer de la chaine de caractère ^$mail est inferieur a 3 faire $error .="Veuillez re-saisir votre e-mail". Seulement dans tout les cas cela me renvoie $error. Je vous poste un bout de mon code:

function verification()
{

$mail= $_POST['mail'];	

        if(strlen($password)<6 || $password!=$password2)
	{
		$error.="Votre mot de passe n'est pas valide<br />";
	}
	
	if(strlen($mail)<=3)
	{
		$error.="Veulliez re-saisir votre mail.<br />";
	}

	if(!empty($error))
	{
		print($error);
		return false;
		exit(0);
	}
	return true;
}

Merci d'avance
Yann

12 réponses

jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
c'est normal tu essayes de récupérer une variable POST dans une fonction
or tu ne peux pas, pour bien faire il faudrait que tu passes ta variable à l'appelle de ta fonction en parametre :

lors de l'appel de ta fonction tu fais verification($_POST['mail']);

et dans le code que tu as mis plus haut, tu remplaces ta déclaration de fonction par function verification($mail)

tu n'aurais plus alors qu'à utiliser directement $mail
0
yann1123 Messages postés 109 Statut Membre 3
 
merci donc sa devrait donner sa :
verification($_POST['nom'],$_POST['prenom'],$_POST['sexe'],$_POST['pseudo'],$_POST['pass'],$_POST['confirmPass'],$mail= $_POST['mail'])
En fait on peut faire sa ?
0
yann1123 Messages postés 109 Statut Membre 3
 
sa n'a rien changé sa m'affiche toujours le message d'erreur dans tout les cas. :'-(
0
Alain_42 Messages postés 5413 Statut Membre 894
 
non

dans ton appel de fonction tu mets:(tu passes l'array $_POST en argument à la fonction)

verification($_POST)

et ta fonction devient:

function verification(argument_array)
{
$error=""; //initialisation a vide
//recup de toutes les variables a tester
$mail= argument_array['mail'];
$password=argument_array['pass'];
$password2=argument_array['confirmPass'];	

        if(strlen($password)<6 || $password!=$password2)
	{
		$error.="Votre mot de passe n'est pas valide<br />";
	}
	
	if(strlen($mail)<=3)
	{
		$error.="Veulliez re-saisir votre mail.<br />";
	}

	if(!empty($error))
	{
		print($error);
		return false;
		exit(0);
	}
	return true;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yann1123 Messages postés 109 Statut Membre 3
 
sa marche pas non plus mais cette fois j'ai une fenêtre blanche et un code source dans mozzila firefox absent aussi.
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
oui c'est $argument_array (faut pas oublier les $) ^^
0
yann1123 Messages postés 109 Statut Membre 3
 
Voici mon ancienne version de ma fonction tout fonctionne sauf la conditions mail:

function verification()
{
//Les variables locales

$user_is_defined="";
$nom= $_POST['nom'];
$prenom= $_POST['prenom'];
$sexe= $_POST['sexe'];
$user= $_POST['pseudo'];
$password= $_POST['pass'];
$password2= $_POST['confirmPass'];
$mail= $_POST['mail'];
$error= "";
$insert_in_db = "";



//Creatioon des structures conditionnelles

	if(strlen($nom)<=3)
	{
		$error.="Veulliez re-saisir votre nom.<br />";
	}
	
	
	if(strlen($prenom)<=3)
	{
		$error.="Veuillez remplir votre prenom.<br />";
	}
	
	
	if ($sexe==null)
	{
		$error.="Veuillez selectionner votre sexe<br />";
	}
	
	
	if(strlen($user)<=4 || $user_is_defined==true)
	{
		$error.="Veuillez rentrer un pseudo plus long que 4 lettres<br />";
	}
	
	
	if($user==$user_is_defined)
	{
		$error.="votre nom d'utilisateur est deja pris<br />";
	}
	
	
	if(strlen($password)<6 || $password!=$password2)
	{
		$error.="Votre mot de passe n'est pas valide<br />";
	}
	
	if(strlen($mail)<=3)
	{
		$error.="Veulliez re-saisir votre mail.<br />";
	}

	if(!empty($error))
	{
		print($error);
		return false;
		exit(0);
	}
	return true;
}

Je vous postent aussi mon formulaire:
<form action="transfer_subscribers.php" enctype="multipart/form-data" method="post" name="form" onSubmit="verif();return true;">
<label><p>E-mail: </label><input type="text" value="" name="email" id="email" />*</p>
<label>

<p>Mot de passe: </label><input type="password" value="" name="pass" id="pass" /> * <i><small>minimum 6 carctères</small></i></p>							

<label><p>Confirmé votre mot de passe: </label>	<input type="password" value="" id="confirmpass" name="confirmPass" /> *</p>
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
name="email"

donc $_POST["email"] et pas $_POST['mail'];

(dsl pour le coup des variables POST dans les fonction, j'étais persuadé qu'on pouvait pas les utiliser directement ^^)
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Ha oui pardon le $ est passé à la trappe

comme dit plus haut pour utiliser des variables dans une fonction, il faut

soit que ces variables soient déclarées globales

soit passées en argument à la fonction

sinon c'est comme si on te demandait de resoudre un problème sans te donner le texte

alors:

function verification($_POST)
{
//Les variables locales

$user_is_defined="";
$nom= $_POST['nom'];
$prenom= $_POST['prenom'];
$sexe= $_POST['sexe'];
$user= $_POST['pseudo'];
$password= $_POST['pass'];
$password2= $_POST['confirmPass'];
$mail= $_POST['mail'];
$error= "";
$insert_in_db = "";



//Creatioon des structures conditionnelles

	if(strlen($nom)<=3)
	{
		$error.="Veulliez re-saisir votre nom.<br />";
	}
	
	
	if(strlen($prenom)<=3)
	{
		$error.="Veuillez remplir votre prenom.<br />";
	}
	
	
	if ($sexe==null)
	{
		$error.="Veuillez selectionner votre sexe<br />";
	}
	
	
	if(strlen($user)<=4 || $user_is_defined==true) //et cette variable $user_is_defined  elle viens d'ou
	{
		$error.="Veuillez rentrer un pseudo plus long que 4 lettres<br />";
	}
	
	
	if($user==$user_is_defined)
	{
		$error.="votre nom d'utilisateur est deja pris<br />";
	}
	
	
	if(strlen($password)<6 || $password!=$password2)
	{
		$error.="Votre mot de passe n'est pas valide<br />";
	}
	
	if(strlen($mail)<=3)
	{
		$error.="Veulliez re-saisir votre mail.<br />";
	}

	if(!empty($error))
	{
		print($error);
		return false;
		exit(0);
	}
	return true;
}


?>

et dans transfer_subscribers.php

tu dois avoir:

verification($_POST); //appel de la fonction
0
yann1123 Messages postés 109 Statut Membre 3
 
oui en fait c'est parce que j'ai fait des modifs sur le formulaire et l'ancienne fonctions a été sauvegardé dans un autre fichier mais sinon le nom était mail

mais maintenant sa marche c bizar :-) ...Merci les gars :D et désoler d'avoir pris un peu de votre temps juste a cause d'un e qui manquait :D
A+
Yann
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
"comme dit plus haut pour utiliser des variables dans une fonction, il faut

soit que ces variables soient déclarées globales "

Ha mais oui je suis bête

le tableau $_POST est une variable globale automatique, voilà pourquoi le reste fonctionne ^^
0
yann1123 Messages postés 109 Statut Membre 3
 
lol user is defined c'était une variable que j'utilisait dans mon ancien script test pour voir si j'avais bien compris un truc et que j'ai oublier d'enlevé en fait j'ai oublier d'enlevé deux variables insert_db et user_is_defined :D chui pas super organisé vous allez me dire mdr :D
0