PHP rocks! wünscht allen Mitgliedern einen guten Rutsch ins neue Jahr 2017 !!!
Hinweis: Das Forum zieht um! Um keine Datenverluste zu haben, schalten wir zwecks Übernahme der Daten das Forum am Sonntag, den 24.04.2016 um ca. 21:00 Uhr offline und passen anschliessend die DNS-Einträge an.
www.php-rocks.de wird euch dann nach den Aktualisierungen der DNS-Server wieder wie gewohnt uneingeschränkt zur Verfügung stehen.
Danke für euer Verständnis!

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hinweis undefined index: var in ... on line
#1

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> 
Die Fortgeschrittenen unter euch erkennen auf den ersten Blick, was hier passiert. Der erste Aufruf der Seite wirft die beschriebene Notice:
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'];


Wenn wir nun keinen Tippfehler gemacht haben, sind wir die ungewünschte Notice los und auch der erste jungfräuliche Aufruf der Seite wird nicht mit einer Notice bestraft.


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.


Gehe zu: