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
- Caractere vide - Guide
- Verifier un lien - Guide
- Coeur vide ✓ - Forum Facebook
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 :)