PHP Undefinierter Index mit $_POST [Duplikat]
In PHP löst der Zugriff auf ein nicht gesetztes Array-Element einen Laufzeitfehler aus, der zu „ Hinweis „Undefinierter Index“. Dies tritt häufig beim Testen auf leere Variablen in Formularen auf, beispielsweise in Benutzeranmeldeskripten.
Ihr vereinfachter Code veranschaulicht das Problem:
$user = $_POST["username"];
if($user != null)
{
echo $user;
echo " is your username";
}
else
{
echo "no username supplied";
}
Während der Code wie erwartet funktioniert, wenn ein Benutzername vorhanden ist, schlägt er mit der Fehlermeldung „Undefinierter Index: Benutzername“ fehl, wenn keiner angegeben wird. Dies liegt daran, dass $_POST keinen „Benutzernamen“-Schlüssel hat, wenn keine Daten übermittelt werden.
Um dieses Problem zu beheben, verwenden Sie den isset()-Operator, um die Existenz einer Variablen oder eines Array-Elements zu überprüfen, bevor Sie darauf zugreifen. Auf diese Weise wird der Fehler verhindert, bevor versucht wird, den Wert abzurufen.
if (isset($_POST["username"]))
{
$user = $_POST["username"];
echo "$user is your username";
}
else
{
$user = null;
echo "no username supplied";
}
In diesem aktualisierten Code stellt isset() sicher, dass der Schlüssel „username“ in $_POST vorhanden ist, bevor er seinen Wert $user zuweist. Dadurch wird der Laufzeitfehler beseitigt und Sie können die Groß-/Kleinschreibung eines leeren Benutzernamens korrekt behandeln.
Es ist zu beachten, dass fehlende Array-Elemente geringfügige Laufzeitfehler sind (E_NOTICE-Stufe). Das Ignorieren von Hinweisen kann dazu führen, dass Ihr Code wie beabsichtigt ausgeführt wird. Dies gilt jedoch insbesondere in Produktionsumgebungen als schlechte Vorgehensweise.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3