Verification input avec boucle $_POST

Résolu
cs_lacomm
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
- 22 sept. 2009 à 11:20
cs_lacomm
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
- 23 sept. 2009 à 14:40
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

Tonio_35
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
11
22 sept. 2009 à 11:34
Hello,

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

Sinon :
|| = OU
&& = ET

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


_________________________________
Min iPomme
3
cs_lacomm
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
22 sept. 2009 à 11:42
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 ?
0
cs_lacomm
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
22 sept. 2009 à 11:47
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;
     			 }
    		}
  } 
0
Tonio_35
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
11
22 sept. 2009 à 11:53
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
0

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

Posez votre question
cs_lacomm
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
23 sept. 2009 à 14:40
dommage, le && marchait bien mais le || ne marche pas: erreur de format pour les deux champs cités
0