Maison >développement back-end >tutoriel php >Pourquoi `isset($_POST)` renvoie-t-il True pour les entrées de formulaire vides ?

Pourquoi `isset($_POST)` renvoie-t-il True pour les entrées de formulaire vides ?

DDD
DDDoriginal
2024-11-08 16:36:02719parcourir

Why Does `isset($_POST)` Return True for Empty Form Inputs?

Comprendre le problème "If isset $_POST"

Lorsque vous travaillez avec des formulaires HTML et PHP, vérifier si une entrée de formulaire a été définie est effectué en utilisant la fonction isset(). Cependant, dans certains scénarios, il peut renvoyer un résultat positif même lorsque le champ du formulaire est vide. Cela peut entraîner un comportement inattendu dans votre code.

Le problème

Dans l'exemple fourni, l'entrée de formulaire nommée « mail » est toujours définie, qu'elle soit ou non. contient des données. En effet, la plupart des entrées de formulaire sont automatiquement définies lorsque le formulaire est soumis, même si elles restent vides.

La solution

Pour résoudre ce problème, vous devez vérifier à la fois l’existence de l’entrée et son vide. Ceci peut être réalisé en utilisant la fonction !empty().

Le code corrigé :

<?php
if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}
?>

Dans ce code, la fonction !empty() vérifie si le $_POST["mail" ] est vide. S'il n'est pas vide, cela signifie que le champ de saisie contient des données et est défini. Sinon, il renverra false et indiquera que l'entrée n'est pas définie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn