Undefined index bei $_POST

pnx

Mitglied
hi beisammen,

an verschiedenen Stellen benutze ich $_POST-Variablen in If-Anweisungen:
PHP:
if(!empty($id) && $_POST['add'] == "Thema erstellen") { ... }
Nun gibt er mir aber immer die Warnung eines undefinierten Indexes.
Wenn ich vor die if-Anweisung ein if-isset setze klappt das logischerweise ohne Fehler.
PHP:
elseif(isset($_POST['cancel']) && $_POST['cancel'] == "Abbrechen")
{
    header("Location: ?site=forum.php&id=$id");
    exit;
}

Kann man die Fehlervermeidung auch ohne isset hinbekommen ?
Reicht es auch aus nur per isset das Vorhandensein der Variable zu prüft, wenn man im Formular jeden "Namen" für den Button nur einmalig vergibt, also keine Buttons die gleichen "Namen" tragen ?
 
Die Fehlermeldung bekommst du weg, indem du das error_reporting änderst.
Ich würds aber so machen, wie du im zweiten Satz meinst.... wenn die Buttons jeweils eindeutig sind, reicht es aus, die Existenz der Variable abzufragen...was auf dem Button steht, ist dann eher wurscht :)
 
Beim Debuggen würde ich auch nicht das error-reporting umstellen.
Auf dem "entgültigen" Webserver würde ich das error-reporting ohnehin ausschalten, wenn man man denn darf, damit keiner in den Code spickt oder sieht, wo ich überall geschlampt habe, kommt ja immer mal vor. Die mietbaren "PHP-Server" haben das E_NOTICE meist eh aus.
Wenns ausreichend getestet oder gewollt ist, würde ich auch die Fehlermeldung unterdrücken, indem ich mit isset nachfrage, meist gehts aber auch mit @. Ich weiß jetzt nicht, für wie schmutzig das hier im Forum angesehen wird. Seit ich auch Java programmiere halte ich das @ für eine Lizenz zum unsauberen Programmieren und nutze es nicht mehr. Daher weiß ich jetzt auch nicht genau, ob man es in einer if-Abfrage verwenden kann.
 
Zurück