PHP Fehlermeldungen

Notice: Undefined index:

Diese „Fehlermeldung“, die hier nur eine Anmerkung ist (notice) erhält man, wenn in einem PHP-Programm bisher diese Variable noch nicht definiert wurde.

Notizen erhält man nur, wenn PHP so eingestellt ist, dass nicht nur die heftigen Fehler, sondern auch alle Anmerkungen über Unregelmäßigkeiten angezeigt werden sollen. Das erreicht man entweder in der PHP.INI oder wenn am Anfang des PHP-Scripts die angegeben wurde über:

// Damit alle Fehler angezeigt werden 
error_reporting(E_ALL); 

Dies kann schnell der Fall sein, wenn man für ein Formular abfragt, ob ein Variable gesetzt wurde.

<?php
error_reporting(E_ALL);

if ( $_POST['aktion'] == "speichern" )
{
    // und hier nun die Aktion
}
?>

Um diesen „Fehler“ in den Griff zu bekommen, da die Variable ja aus dem Formular kommt und daher noch nicht vom PHP-Programm gesetzt werden wird, kann erst auf die Existenz der Variable getestet werden und dann die Inhaltsprüfung.

<?php
error_reporting(E_ALL);

if ( isset($_POST['aktion']) AND $_POST['aktion']=="speichern" )
{
    // und hier nun die Aktion
    echo "nun speichern";
}
?>

<form name="" action="" method="POST" enctype="text/html">

<input type="text" name="aktion" value="speichern" size="20" maxlength="50">

<input type="Submit" name="" value="speichern">

</form>

error_reporting einsetzen

// einfache Laufzeitfehler melden
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Benachrichtigungen von E_NOTICE können sinnvoll sein 
// bei nicht initialisierte oder falsch geschriebene Variablen
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// alle Fehler mit Ausnahmen von E_NOTICE anzeigen
// Dies ist i.d.R. die Standardeinstellung in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// alle PHP-Fehler melden
error_reporting(E_ALL);

// Fehlermeldungen ganz abschalten
error_reporting(0);