0 devient empty PHP
Résolu
naitreGitan
Messages postés
406
Date d'inscription
Statut
Membre
Dernière intervention
-
jibb3r -
jibb3r -
bonjour à tous,
J'ai un problème, j'ai un formulaire (post) avec un champs et un bouton valider pour envoyer mon formulaire.
J'arrive sur une seconde page php qui vérifie le champs saisie avant.
La vérification consiste a voir si le champs n'est pas vide.
mon code pour le formulaire :
<form method="post" action="verif_champs.php">
champs : <input type="text" name="nom_champs">
<input type="submit" name="submit" value="Valider">
</form>
code Verif_champs :
if (!empty($_POST['monChamps'])){
echo "c'est ok!";
}
Le problème est que quand je mets rien, il détecte bien qu'il n'y a rien.
Quand je mets un chiffre, ça marche impeccable, il m'affiche bien "c'est ok!" sauf pour le chiffre 0.
L'impression qu'il dit que 0 et comme empty ??
J'ai fais un affichage de $_POST['monChamps'] dans la page verif_champs, il m'affiche bien 0.
j'avoue que je ne comprends pourquoi.
si quelqu'un a déjà eu le problème.
merci d'avance
PS : dans le code que j'ai écris, tout n'y figure pas (balise html body ...)
Si vous voulez d'autre infos, n'hésitez pas
J'ai un problème, j'ai un formulaire (post) avec un champs et un bouton valider pour envoyer mon formulaire.
J'arrive sur une seconde page php qui vérifie le champs saisie avant.
La vérification consiste a voir si le champs n'est pas vide.
mon code pour le formulaire :
<form method="post" action="verif_champs.php">
champs : <input type="text" name="nom_champs">
<input type="submit" name="submit" value="Valider">
</form>
code Verif_champs :
if (!empty($_POST['monChamps'])){
echo "c'est ok!";
}
Le problème est que quand je mets rien, il détecte bien qu'il n'y a rien.
Quand je mets un chiffre, ça marche impeccable, il m'affiche bien "c'est ok!" sauf pour le chiffre 0.
L'impression qu'il dit que 0 et comme empty ??
J'ai fais un affichage de $_POST['monChamps'] dans la page verif_champs, il m'affiche bien 0.
j'avoue que je ne comprends pourquoi.
si quelqu'un a déjà eu le problème.
merci d'avance
PS : dans le code que j'ai écris, tout n'y figure pas (balise html body ...)
Si vous voulez d'autre infos, n'hésitez pas
A voir également:
- 0 devient empty PHP
- Remove empty directories - Télécharger - Nettoyage
- Easy php - Télécharger - Divers Web & Internet
- Remettre a 0 un pc - Guide
- Numéro de téléphone excel 0 - Guide
- Qualité de signal parabole 0 - Forum TNT / Satellite / Réception
1 réponse
Bonjour,
Bizarre effectivement, j'ai le même comportement que celui que tu décris lorsque j'essaie ton script.
Dans tous les cas, dans le script de vérification, tu t'es trompé dans le nom du champs.
Mis à part ça, voici la correction apportée pour que cela fonctionne correctement:
Testé et approuvé, ça devrait donc fonctionner chez toi aussi.
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Bizarre effectivement, j'ai le même comportement que celui que tu décris lorsque j'essaie ton script.
Dans tous les cas, dans le script de vérification, tu t'es trompé dans le nom du champs.
Mis à part ça, voici la correction apportée pour que cela fonctionne correctement:
if ( isset($_POST['nom_champs']) && trim($_POST['nom_champs']) != "" ){ echo "c'est ok!"; }
Testé et approuvé, ça devrait donc fonctionner chez toi aussi.
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
C'est ce que j'ai fais pour résoudre le problème mais sincèrement, je ne vois pas pourquoi il considère le 0 comme empty.
Quelqu'un a une idée sur ce sujet ?
merci
Quand tu lis la doc php ( https://www.php.net/manual/fr/function.empty.php ), c'est bien indiqué que 0 est considéré comme vide.
Dans les commentaires il à plein de fonctions qui peuvent être utiles.
dsl d'avoir posé la question. J'aurais du cherché plus longtemps sur le net.
Mais ça me paraissait tellement logique que 0 n'est pas vide :)
je regarde ça :)
merci
pour s'en convaincre
var_dump(false == 0) : true !
var_dump(false == '') : true !
....