Comment vérifier qu'un post est vide - PHP
Résolu/Fermé
A voir également:
- Comment vérifier qu'un post est vide - PHP
- Verifier un lien - Guide
- Comment supprimer une page vide sur word - Guide
- Coeur vide ✓ - Forum Facebook
- Easy php - Télécharger - Divers Web & Internet
- Formate pour taxer client frigo vide - Forum PDF
17 réponses
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
11 mai 2011 à 17:51
11 mai 2011 à 17:51
Et pourquoi empty ne fonctionne pas -_- ?
Empty fonctionnerai si on avait pour POST :
Alors que tu as
Donc la fonction considère que le tableau n'est pas vide, puisqu'il contient un index et ce dernier a pour valeur '' (vide).
Empty fonctionnerai si on avait pour POST :
Array ( )
Alors que tu as
Array ( [reponse] => )
Donc la fonction considère que le tableau n'est pas vide, puisqu'il contient un index et ce dernier a pour valeur '' (vide).
MysticSquall
Messages postés
401
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
7 octobre 2011
27
11 mai 2011 à 17:04
11 mai 2011 à 17:04
value est à null, c'est normal qu'il ne t'affiche rien non ?
Utilisateur anonyme
11 mai 2011 à 17:08
11 mai 2011 à 17:08
le problème c'est justement que value est à null, et que je passe la condition !empty().
Le tableau étant vide : il ne devrait pas afficher le post
Le tableau étant vide : il ne devrait pas afficher le post
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
Modifié par Zep3k!GnO le 11/05/2011 à 17:15
Modifié par Zep3k!GnO le 11/05/2011 à 17:15
si je comprend bien ton problème, il faudrait plutôt mettre :
IF( isset($_POST['reponse']) ){
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
11 mai 2011 à 17:19
11 mai 2011 à 17:19
Non, je ne veux pas tester si une variable - précise - éxiste, mais si le - post - est vide.
Admettons qu'il y est 50 input, je ne veux pas mettre :
50 x
Je voudrais tester la variable $_POST dans sa globalité
Admettons qu'il y est 50 input, je ne veux pas mettre :
50 x
IF( isset($_POST['T['x']) AND !empty ($_POST['T['x']) )
Je voudrais tester la variable $_POST dans sa globalité
Utilisateur anonyme
11 mai 2011 à 17:22
11 mai 2011 à 17:22
au passage : isset($_POST) ne sers pas non plus.
Pour une raison que je ne comprends pas, si on ne précise pas une case bien précise du POST, les deux fonctions ne servent à rien.
Pour une raison que je ne comprends pas, si on ne précise pas une case bien précise du POST, les deux fonctions ne servent à rien.
Utilisateur anonyme
11 mai 2011 à 17:27
11 mai 2011 à 17:27
Voilà une solution que j'ai trouvé :
$bPostVide = TRUE; //On regarde chaque champ du post FOREACH($_POST AS $cle => $element){ //Si un post n'est pas vide : on met la variable à false IF( !empty($element)){ $bPostVide = FALSE; } } //Si la variable est à "TRUE" (ou plutôt dirons nous != FALSE / NULL pour le php) IF($bPostVide){ echo "le post est vide"; }
Utilisateur anonyme
11 mai 2011 à 17:29
11 mai 2011 à 17:29
J'ai oublié le principale depuis le début !
Utilité : Prévenir l'utilisateur qu'il n'a rempli aucun champ - sans javaScript -
Utilité : Prévenir l'utilisateur qu'il n'a rempli aucun champ - sans javaScript -
Pour moi le empty ne sert que si le tableau existe, ainsi je te propose le bon de code suivant :
/*****************************************
* Vérification du formulaire
*****************************************/
// Si le tableau $_POST existe alors le formulaire a été envoyé
if(!empty($_POST))
{
// Le champ 'reponse' est-il rempli ?
if(empty($_POST['reponse']))
{
$message = 'Veuillez indiquer la reponse svp !';
}
// comme tu ne sait pas le nombre de input, donc tu
// regarde si la chaine vide est présente dans le tableau des POST
if(in_array("", $_POST))
{
$message="Remplir tous les champs !!!!";
} else {
$message="Tu as bien remplit leformulaire !!";
}
echo $message;
}
/*****************************************
* Vérification du formulaire
*****************************************/
// Si le tableau $_POST existe alors le formulaire a été envoyé
if(!empty($_POST))
{
// Le champ 'reponse' est-il rempli ?
if(empty($_POST['reponse']))
{
$message = 'Veuillez indiquer la reponse svp !';
}
// comme tu ne sait pas le nombre de input, donc tu
// regarde si la chaine vide est présente dans le tableau des POST
if(in_array("", $_POST))
{
$message="Remplir tous les champs !!!!";
} else {
$message="Tu as bien remplit leformulaire !!";
}
echo $message;
}
T'as réponse est intéressante pour ceux qui veulent que tous les champs soient remplis.
Je n'avais pas du tout pensé à :
Mais le problème que je soulève et que ta première ligne de code :
ne sert à rien.
La seule façon de vérifier que le post (dans sa version globale) est vide est le code de : Zep3k!GnO.
Je n'avais pas du tout pensé à :
if(in_array("", $_POST))
Mais le problème que je soulève et que ta première ligne de code :
if(!empty($_POST))
ne sert à rien.
La seule façon de vérifier que le post (dans sa version globale) est vide est le code de : Zep3k!GnO.
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
11 mai 2011 à 17:34
11 mai 2011 à 17:34
Humm, ce que je comprends pas dans ta question c'est que :
Lorsqu'on submit un formulaire envoyé en post, si tes champs ne sont pas rempli, c'est tout à fait normal que les champs apparaissent dans $_POST avec une valeur vide, car c'est ce que tes valeurs contiennent, 'rien'.
Admettons qu'il y est 50 input, je ne veux pas mettre :
50 x
IF( isset($_POST['T['x']) AND !empty ($_POST['T['x']) )
Si tu veux juste tester que TOUTES tes valeurs ne sont pas vide :
Lorsqu'on submit un formulaire envoyé en post, si tes champs ne sont pas rempli, c'est tout à fait normal que les champs apparaissent dans $_POST avec une valeur vide, car c'est ce que tes valeurs contiennent, 'rien'.
Admettons qu'il y est 50 input, je ne veux pas mettre :
50 x
IF( isset($_POST['T['x']) AND !empty ($_POST['T['x']) )
Si tu veux juste tester que TOUTES tes valeurs ne sont pas vide :
$bAllOk = true; foreach($_POST as $sPostIndex => $sPostValue){ if($sPostValue == ''){ echo "<br/>$sPostIndex est vide !"; $bAllOk = false; } } if($bAllOk){ //Do something }
Utilisateur anonyme
11 mai 2011 à 17:43
11 mai 2011 à 17:43
Je suppose que le post est à moitié résolu.
Pour parer à la fonction empty qui ne fonctionne pas sur le post (dans sa version globale, pas en détaillant chaque case).
Le code est ci-dessus.
Mais est-ce que quelqu'un a réussi à le condenser en 1 ligne ?
Et pourquoi empty ne fonctionne pas -_- ?
Pour parer à la fonction empty qui ne fonctionne pas sur le post (dans sa version globale, pas en détaillant chaque case).
Le code est ci-dessus.
Mais est-ce que quelqu'un a réussi à le condenser en 1 ligne ?
Et pourquoi empty ne fonctionne pas -_- ?
Utilisateur anonyme
11 mai 2011 à 17:46
11 mai 2011 à 17:46
Zep tu as répondu exactement comme je l'ais fait plus haut, au moins je sais que je ne fais pas fausse route :).
MysticSquall
Messages postés
401
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
7 octobre 2011
27
11 mai 2011 à 17:56
11 mai 2011 à 17:56
je comprend pas...tu fais un
normal qu'il passe dans ta boucle...
Tu veux tester si $_POST['reponse'] est vide ?
Alors test avec !empty($_POST['reponse'])
IF( !empty($_POST) ){ echo'<pre>'; print_r($_POST); echo'</pre>'; }
normal qu'il passe dans ta boucle...
Tu veux tester si $_POST['reponse'] est vide ?
Alors test avec !empty($_POST['reponse'])
Utilisateur anonyme
11 mai 2011 à 17:57
11 mai 2011 à 17:57
OMG tu viens de m'apprendre quelque chose Zep3k!GnO.
Si on échange de place les clés et les valeurs, et que le post est vide : on aura une seule clé qui sera vide donc empty fonctionne.
Merci pour votre aide :)
Si on échange de place les clés et les valeurs, et que le post est vide : on aura une seule clé qui sera vide donc empty fonctionne.
$post = array_flip($_POST); IF(empty($post)){ echo 'Merci à Zep3k!GnO pour son aide !'; }
Merci pour votre aide :)
MysticSquall
Messages postés
401
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
7 octobre 2011
27
12 mai 2011 à 09:22
12 mai 2011 à 09:22
bah fait un
$test = array_filter($_POST)
$nbChampsRemplis = count($test);
$test = array_filter($_POST)
$nbChampsRemplis = count($test);