26.06.2015, 00:50
Dieser Beitrag wurde zuletzt bearbeitet: 29.03.2016, 17:21 von Arne Drews.
Notice: undefined index: var in ...
Häufige Notice bei Verwendung von Formularen
Was ist passiert?
Diese Notice tritt auf in Verwendung eines Array, auf dessen Schlüssel wir zugreifen möchten, der nicht existiert.
In vielen Fällen handelt es sich zwar einfach nur um einen Tippfehler des Schlüsselnamens, aber auch bei Verwendung eines Formulares erhalten viele Einsteiger diese Notice.
Um das nachzustellen, schauen wir uns das folgende minimale "Affen"-Formular an:
PHP-Code:
<?php
echo $_POST['sometext'];
?>
<form name="test" action="" method="post">
<input type="text" name="sometext" value="" />
<input type="submit" name="submitted" value="absenden" />
</form>
Zitat:Notice: Undefined index: sometext in /var/www/vhosts/php-rocks.de/httpdocs/.../....php on line 3
Um das Problem zu beheben, müssen wir einfach nur abfragen, ob das Formular überhaupt gesendet wurde, bzw. Daten im
POST
-Kanal vorhanden sind.Dazu bedienen wir uns - um nicht bei der Abfrage eine ähnliche Notice zu erhalten - der Funktion
isset()
:PHP-Code:
if ( isset($_POST['submitted']) ) {
echo $_POST['sometext'];
}
POST und GET
Häufig tritt dieses Problem auch auf, wenn Formulare bspw. per
POST
übertragen werden, man aber versucht die Daten aus $_GET
zu bekommen.Dies ist einer der ersten Punkte, die man prüfen sollte, wenn der Fehler in Verbindung mit einem Formular auftritt.
Hinweis
Dies sind nur zwei von vielen Ursachen für eine Notice dieser Art. Erhält man eine solche Notice, kann man also i.d.R. davon ausgehen, daß man einen Vertipper in einem Array-Schlüssel hat oder über einen falschen Kanal auf Formulardaten zurückgreifen möchte.