Fonction empty
Résolu
lgslgs
-
lgslgs -
lgslgs -
Bonjour,
Je vous explique, la fonction empty est censée vérifier si un champ est vide, si le champ contient un caractère visible. Si on tape un espace dans un champ (juste un espace) et qu'on vérifie avec la fonction empty si le champ vide, il est censé ne retourner que le champs est vide car il n'y a pas de caractère visible d'après ce que j'ai appris sur cette fonction mais ce n'est pas ce qui se passe quand j'essaie de l'utiliser
Voici mon code
Aidez-moi à trouver le problème svp
Merci
Je vous explique, la fonction empty est censée vérifier si un champ est vide, si le champ contient un caractère visible. Si on tape un espace dans un champ (juste un espace) et qu'on vérifie avec la fonction empty si le champ vide, il est censé ne retourner que le champs est vide car il n'y a pas de caractère visible d'après ce que j'ai appris sur cette fonction mais ce n'est pas ce qui se passe quand j'essaie de l'utiliser
Voici mon code
<!DOCTYPE html> <html> <head> <title>Formulaire</title> <meta charset="utf-8"> </head> <body> <form method="post" action=""> <h1>Remplissez ce formulaire</h1><br> <label for="nom">Nom</label> <input type="text" name="nom" id="nom" required><br> <label for="prenom">Prénom</label> <input type="text" name="prenom" id="prenom" required><br><br> <label for="description">Description</label><br> <textarea name="description" id="description" rows="8" lows="25" required></textarea><br><br> <label for="pays">Pays</label> <select name="pays" id="pays"> <option value="Congo">Congo</option> <option value="France">France</option> <option value="Allemagne" selected="selected">Allemagne</option> </select><br><br> <!-- Les cases cochées auront pour valeur "on" --> <p>Fast food préféré(s)</p> <label for="macdonald">MacDonald</label> <input type="checkbox" name="macdonald" id="macdonald"><br> <label for="burgerking">Burgerking</label> <input type="checkbox" name="burgerking" id="burgerking" checked="checked"><br> <label for="kfc">KFC</label> <input type="checkbox" name="kfc" id="kfc"><br><br> <p>Etes-vous étudiant ?</p> <input type="radio" name="choix" value="Oui" id="oui" checked="checked"> <label for="oui">Oui</label> <input type="radio" name="choix" value="Non" id="non"> <label for="non">Non</label><br><br> <input type="submit" name="submit" value="Soumettre"> </form> </body> </html> <?php $nom=htmlspecialchars($_POST['nom']); $prenom=htmlspecialchars($_POST['prenom']); $description=htmlspecialchars($_POST['description']); if(isset($_POST['submit'])) { if(!empty($nom) && !empty($prenom) && !empty($description)) { echo "ok"; } } ?>
Aidez-moi à trouver le problème svp
Merci
A voir également:
- Fonction empty
- Fonction si et - Guide
- Remove empty directories - Télécharger - Nettoyage
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
3 réponses
Bonjour,
Attention à l'utilisation de htmlspecialchars
ça ne s'utilise qu'à l'affichage uniquement..... pas pour le traitement ni avant l'insertion en bdd
$nom = isset($_POST['nom']) ? trim($_POST['nom']): NULL; if(empty($nom)){ ..
Attention à l'utilisation de htmlspecialchars
ça ne s'utilise qu'à l'affichage uniquement..... pas pour le traitement ni avant l'insertion en bdd
Bonjour,
Ce que tu as appris est faux : empty retourne FALSE si la chaîne est uniquement constituée d'espaces.
D'où la réponse de Jordane qui commence par faire un trim(), c'est à dire qui supprime les espaces de début/fin de chaîne.
Attention également, empty renvoie TRUE si la chaîne vaut "0"...
La doc pour plus de détails : https://www.php.net/empty
Xavier
Ce que tu as appris est faux : empty retourne FALSE si la chaîne est uniquement constituée d'espaces.
D'où la réponse de Jordane qui commence par faire un trim(), c'est à dire qui supprime les espaces de début/fin de chaîne.
Attention également, empty renvoie TRUE si la chaîne vaut "0"...
La doc pour plus de détails : https://www.php.net/empty
Xavier
C'est ? : est un opérateur ternaire (comprendre, qui prend trois opérandes) qui revient à peu près à faire if...else. Mais comme c'est un opérateur et pas une structure de langage, il peut être utilisé au sein même d'une expression.
Bref, sa ligne revient à écrire :
Xavier