Comment vérifier qu'un post est vide - PHP
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
question toute bête, mais toujours pas trouvé de réponse.
Voici le code pour tester :
Je ne veux pas devoir tester le post de la deuxième façon car je ne connais pas le nombre d'input qu'il y aura dans mon autre application.
Le résultat pour ceux qui ne peuvent tester le code :
Array
(
[reponse] =>
)
Il n'y a pas de reponse.
Quelqu'un a une solution ?
Un premier merci pour ceux qui se penche sur la question :p.
question toute bête, mais toujours pas trouvé de réponse.
Voici le code pour tester :
<form method="post"> <input type="text" name="reponse" value="" size="3" /><br /> <input type="submit" value="Envoyer" /> </form> '; //Si le tableau Post n'est pas vide : on l'affiche IF( !empty($_POST) ){ echo'<pre>'; print_r($_POST); echo'</pre>'; } //Si le la variable est vide on affiche du texte IF( empty($_POST['reponse']) ){ echo 'Il n\'y a pas de reponse.'; }
Je ne veux pas devoir tester le post de la deuxième façon car je ne connais pas le nombre d'input qu'il y aura dans mon autre application.
Le résultat pour ceux qui ne peuvent tester le code :
Array
(
[reponse] =>
)
Il n'y a pas de reponse.
Quelqu'un a une solution ?
Un premier merci pour ceux qui se penche sur la question :p.
A voir également:
- Comment vérifier qu'un post est vide - PHP
- Comment supprimer une page vide sur word - Guide
- Verifier compatibilite windows 11 - Guide
- Verifier un lien - Guide
- Caractere vide - Guide
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
17 réponses
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).
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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é
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.
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"; }
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.
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 }
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 -_- ?
Zep tu as répondu exactement comme je l'ais fait plus haut, au moins je sais que je ne fais pas fausse route :).
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'])
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 :)