PHP-isset

Fermé
Gael - 21 mai 2011 à 19:55
 Gael - 22 mai 2011 à 13:37
Bonjour,
Je travail actuellement sur un script en PHP qui utilise un formulaire HTML.
Je voudrais savoir si il est possible de vérifier si le formulaire que je veux exploiter a été saisie.
Je sais que l'on peut utiliser la fonction isset() pour vérifier si quelque chose est saisie, mais je ne vois pas comment introduire mon formulaire là dedans puisque c'est du HTML. (le formulaire renseigne environ 10 champs et il est trop long de verifier tout les champs par un $_REQUEST[duchamps].)

Merci



A voir également:

4 réponses

Bonjour

1 - isset vérifie si la variable existe, pas si quelque chose a été saisi dedans. Il faut utiliser is_empty pour tester s'il y a eu une saisie

2 - tu peux faire une boucle en utilisant un array qui contient les noms de tes 10 champs pour faire tes vérifications sans ré-écrire 10 fois le même code, mais ce n'est pas une bonne solution car en général, tu ne te contentes pas de tester l'existence. Tu as toujours des tests différents sur les divers champs, et des messages différents à afficher à l'utilisateur selon les erreurs de saisie qu'il a commises.

3- avis personnel : évite d'utiliser $_REQUEST, utilise plutôt $_POST, $_GET ou $_COOKIE pour mieux contrôler l'origine de tes variables
3
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
22 mai 2011 à 11:23
Salut,

Tu veux dire vérifier si chacun des dix champs a été completé ? Et sans avoir à faire isset() dix fois ?

isset() vérifie si une variable existe. Dès que tu envoies le formulaire, les dix variables existeront, qu'elles soit nulles ou non ! A l'exception des cases à cocher.

Pour savoir si le formulaire est envoyé, utilise isset() sur un champ de texte (ou n'importe quoi d'autre sauf un checkbox). S'il renvoi true alors le formulaire est envoyé.

Et pour vérifier si les champs ne sont pas nuls, tu dois le faire individuellement sauf si tu n'as que des champs de texte.

;-)
1
"Et pour vérifier si les champs ne sont pas nuls, tu dois le faire individuellement sauf si tu n'as que des champs de texte. "
Effectivement j'ai 9 champs de texte et 1 champ saisi par liste déroulante.
As tu une solution pour vérifier les 9 champs de texte en même temps?
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
22 mai 2011 à 12:54
Les listes déroulantes ont le même fonctionnement que les champs de texte.
Fais une boucle :

$formOk = true;
foreach($_POST as $key => $val){
if($val){
echo "$key n'est pas nul<br>";
}
else{
echo "$key est nul<br>";
$formOk = false;
}
}
echo $formOk ? "Tous les champs sont ok !<br>" : "Erreur...<br>";

Tu auras la liste détaillée de ce qui est rempli ou non, et $formOk sera un booléen qui t'indiquera si tous les champs sont remplis.

A noter que tu ne dois effectuer cette boucle que si le formulaire est envoyé, en vérifiant avec isset($_POST['un_des_champs_(n'importe_lequel)'])

;-)
0
Merci beaucoup !
0
Luxerails Messages postés 159 Date d'inscription jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 41
21 mai 2011 à 20:22
Bah où est le probleme ? De faire
<?php
if (isset($_REQUEST['truc'])
{
...
}
0
Le problème c'est que j'ai une dizaine de 'truc' à vérifier si je fais ca....
Je voulais savoir si il existe une solution moins fastidieuse...

Merci quand même de m'aider.
0