Verification input avec boucle $_POST [Résolu]

Signaler
Messages postés
299
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
-
Messages postés
299
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
-
Bonjour

Je dois vérifier des entrées.
Je fais ceci

if( $_POST['prenom'] == "" )
{$blank_array[] = $prenom;
}
if( $_POST['nom'] == "" )
{$blank_array[] = $nom;
}
if( $_POST['codeE'] == "" )
{$blank_array[] = $codeE;
}
if( $_POST['projet1'] == "" )
{$blank_array[] = $projet1;
}

Je voudrais faire quelques chose comme ceci:
foreach($_POST as $field => $value)
{ if( $value == "" || $value != $_POST['id'] )
{$blank_array[] = $field;
}
elseif ($field != "codeE") /*&& ($field != "id")
{if(!ereg("^[A-Za-z' -]{1,50}$",$value) )
{$bad_format[] = $field;
}
}
elseif($field "codeE" ) /* && ($field "id")
{if(!ereg("^[0-9)( -]{1,7}(([xX]|(ext)|(ex))?[ -]?[0-9]{1,7})?$",$value) )
{$bad_format[] = $field;
}
}
}

mais tous les champs sont reconnus comme mauvais.


merci

5 réponses

Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Hello,

merci d'utiliser les balises de code pour plus de lisibilité dans le forum...

Sinon :
|| = OU
&& = ET

Pourquoi "|| $value != $_POST['id']" ?


_________________________________
Min iPomme
Messages postés
299
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
Hello

Merci pour ta réponse et désolé pour la mise en page.

Parce que le champ ID ne doit pas être testé, il est testé dans la page précédente et sur cette page-ci, il est renvoyé comme erroné. Si je le retire, les autres variables sont OK, seul le $id est considéré comme erroné (format de saisie erroné)
Sinon, le principe du
foreach($_POST as $field => $value)

est-il correct ?
Messages postés
299
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
ah ben finalement la réponse était ceci
merci à tous

foreach($_POST as $field => $value)
  { 
  	if( $value == ""   )
    	{$blank_array[] = $field;
    	}
   		elseif ($field != "codeE"  && $field != "id") 
   			{if(!ereg("^[A-Za-z' -]{1,50}$",$value) )
      			{$bad_format[] = $field;
      			}
    		}
    	elseif($field "codeE"  && $field "id")
    		{if(!ereg("^[0-9)( -]{1,7}(([xX]|(ext)|(ex))?[ -]?[0-9]{1,7})?$",$value) )
      			{$bad_format[] = $field;
     			 }
    		}
  } 
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
10
Non c'est pas bon regarde :
elseif($field "codeE" && $field "id")

Veux dire :

Si ma clée est codeE et que ma clé est id...
Une clé peut pas être deux choses en même temps...

De plus tu peux optimiser encore... N'hésite pas à reposter ton code quand tu pense qui seras corrigé...

_________________________________
Min iPomme
Messages postés
299
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
dommage, le && marchait bien mais le || ne marche pas: erreur de format pour les deux champs cités