Index PHP non défini avec $_POST [Duplicate]
En PHP, l'accès à un élément de tableau non défini déclenche une erreur d'exécution, entraînant le message " Avis "Index non défini". Cela se produit souvent lors du test de variables vides dans des formulaires, tels que les scripts de connexion utilisateur.
Votre code simplifié illustre le problème :
$user = $_POST["username"];
if($user != null)
{
echo $user;
echo " is your username";
}
else
{
echo "no username supplied";
}
Bien que le code fonctionne comme prévu lorsqu'un nom d'utilisateur est présent, il échoue avec l'erreur « Index non défini : nom d'utilisateur » lorsqu'aucun n'est fourni. Cela se produit car $_POST n'a pas de clé "nom d'utilisateur" lorsqu'aucune donnée n'est soumise.
Pour résoudre ce problème, utilisez l'opérateur isset() pour vérifier l'existence d'une variable ou d'un élément de tableau avant d'y accéder. De cette façon, l'erreur est évitée avant de tenter de récupérer la valeur.
if (isset($_POST["username"]))
{
$user = $_POST["username"];
echo "$user is your username";
}
else
{
$user = null;
echo "no username supplied";
}
Dans ce code mis à jour, isset() garantit que la clé "username" existe dans $_POST avant d'attribuer sa valeur à $user. Cela élimine l'erreur d'exécution et vous permet de gérer correctement le cas d'un nom d'utilisateur vide.
Il convient de noter que les éléments manquants du tableau sont des erreurs d'exécution mineures (niveau E_NOTICE). Ignorer les notifications peut permettre à votre code de s'exécuter comme prévu, mais cela est considéré comme une mauvaise pratique, en particulier dans les environnements de production.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3