Problème vérification format champ

Fermé
Xtream - 14 mai 2009 à 10:08
 Shad69 - 29 mai 2009 à 19:06
Bonjour,

Je viens vous demander votre aide, ayant quelques problèmes dans mon formulaire.

1. D'abord, j'ai fais une liste de sélection de plusieurs pays. Or, cette liste est très longue !

Je ne me vois pas faire :

if(eregi("pays",$champ))
{
if(!ereg("(France|Espagne|Italie|Grèce|Allemagne|Lituanie|Turquie|Finlande|...|...)",$valeur))
{
$errors[]="$valeur n'est pas un pays valide.";
}
}
... pour 50 pays ! Auriez-vous une solution svp ?


2. Ensuite, l'internaute doit rentrer sa date de naissance. J'ai testé le code suivant, en indiquant une date invalide, mais après génération du script, il ne m'indique aucune erreur ! Je ne comprends pas....

if(eregi("dateNaissance",$champ))
{
if(!ereg("^([0-9]{2})/([0-9]{2})/([0-9]{4})$",$valeur, $date) and checkdate( $date[2], $date[1], $date[3] ) and $date[3] >= 1900)
{
$errors[] = "$valeur n'est pas une date valide.";
}
}

Exemple : dateNaissance = 53-487198.
resultat = RIEN !


3. Enfin, j'ai fait exactement le même test que précédemment, mais cette fois si avec le champ "prenom" et le champ "nom", en indiquant un prénom et un nom invalides. Après génération, PHP m'indique bien une erreur au niveau du prénom, mais pas au niveau du nom ! Voici mon code :

if(eregi("prenom",$champ) and eregi("nom",$champ))
{
if (!ereg("^[A-Za-z' -]{1,50}$",$valeur))
{
$errors[] = "$valeur n'est pas valide.";
}
}

Exemple : - prenom = Mathilde95'(*
resultat = Mathilde95'(* n'est pas valide.
- nom = Durant78- _£
resultat = RIEN !


Je vous remercie d'avance pour les réponses que vous m'apporterez.
A voir également:

6 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
14 mai 2009 à 12:22
1/Soit vous avez votre liste en base dans quel cas vous faites une requête, soit vous stocké votre liste dans un tableau et vous faites un http://www.manuelphp.com/php/function.array-search.php


2/Voici la bonne expression je pense, j'ai testé avec
http://www.annuaire-info.com/outil-referencement/expression-reguliere/
^([0-9]{2})(\/)([0-9]{2})(\/)([0-9]{4})$
0
Merci pour votre réponse, je vais tester votre code.
0
Je souhaite utiliser la fonction array search, mais je ne vois pas comment faire, une fois mon array établie...

$nomPays = array(1=> "France (Metropole)",
"France (Dom-Tom)",
"Algerie",
"Andorre",
"Belgique",
"Benin",
"Burkina Faso",
"Burundi",
"Cambodge",
"Cameroun",
"Canada"
"Centrafrique",
"Comores",
"Congo (Brazzaville)",
"Congo (Kinshasa)",
"Cote d'Ivoire",
"Djibouti",
"Gabon",
"Guinee (Conakry)",
"Guinee (Equatoriale)",
"Haiti",
"Laos",
"Liban");

Je pense faire ceci :

if(!array_search('$nomPays', $pays))
{
return 'paysfalse';
}
else
{
return 'ok';
}


Pourriez-vous m'éclaircir svp ?
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
16 mai 2009 à 20:12
Je pense que vous avez fait une erreur sur l'ordre des paramètres. Vous devez avoir en premier l'élément recherché et en deuxième la variable contenant le tableau.
0
donc plutôt ça ?

if(!array_search(' ', $nompays))
{
return 'paysfalse';
}
else
{
return 'ok';
}

Par contre, je ne vois pas exactement quoi mettre pour l'élément recherché. En effet, c'est l'internaute qui choisira son pays, je ne le connais pas.
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
16 mai 2009 à 22:15
ben si l'internaute choisit son pays, c'est soit une variable de session soit une variuable postée en $_POST ou $_GET
0

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

Posez votre question
Oki je vais tester tout ça.
0
Désolé de ne répondre que maintenant, j'étais parti en vacances !!

J'ai réussi a réglé mon problème, je te remercie pour tes réponses !
0