Notice-Meldungen
Wilhelm Turtschan
- php
habe d'ehre
Ich bin gerade beim Test einer neu erstellten Applikation. Wenn ich error_reporting(E_ALL) einschalte, zeigt er mir fuer (z.B) $_GET['modus'] immer die Notiz "Undefinied Index: modus".
Gibt es eine Moeglichkeit dies zu unterbinden, ausser natuerlich error_reporting(0), oder fehlt etwas Grundsaetzliches was ich nicht kenne? Normale Arrays sollen ja initialisiert werden, aber bei $_GET oder $_POST?
Die Inhalte der $_GET-Variable werden selbstverstaendlich auf gueltige Werte ueberprueft.
man liest sich
Wilhelm
Hallo Wilhelm,
$_GET etc. muss man nicht initialisieren, die sind immer da. Ob es den erwuenschten Key gibt, ist natuerlich eine andere Sache.
Meine Standardloesung dafuer ist ein kleines Ternary-Statement
$foo = !empty($_GET['foo']) ? $_GET['foo'] : ''; //bzw. array() oder was angemessen ist im Else-Teil
Wenn Du unbedingt $_GET['foo'] brauchst, sollte auch funktionieren:
$_GET['foo'] = !empty($_GET['foo']) ? $_GET['foo'] : '';
Dieter
habe d'ehre
Meine Standardloesung dafuer ist ein kleines Ternary-Statement
$foo = !empty($_GET['foo']) ? $_GET['foo'] : ''; //bzw. array() oder was angemessen ist im Else-Teil
Das habe ich auch schon angedacht, allerdings muss ich dann jeden Schmonz in die Funktionen mit uebergeben, was ich eigentlich nicht will.
$_GET['foo'] = !empty($_GET['foo']) ? $_GET['foo'] : '';
Das gefaellt mir schon besser und macht das was ich will.
man liest sich
Wilhelm
habe d'ehre
$_GET['foo'] = !empty($_GET['foo']) ? $_GET['foo'] : '';
Hmhh, jetzt kennt er in Funktionen die $_GET nicht mehr. *grmpf*
Weiterbuddeln ist angesagt, die Doku gibt da aber auch nicht wirklich viel her.
man liest sich
Wilhelm
Holladiewaldfee,
$_GET['foo'] = !empty($_GET['foo']) ? $_GET['foo'] : '';
Hmhh, jetzt kennt er in Funktionen die $_GET nicht mehr. *grmpf*
Hm? $_GET ist autoglobal und bleibt es auch, wenn man Werte zuweist und nicht nur abfrägt.
Folgendes Beispiel
---
$_GET['bla'] = 'blubb';
function x()
{ print_r($_GET); }
x();
---
funktioniert zumindest bei mir so wie erwartet.
Oder habe ich Dich falsch verstanden?
Ciao,
Harry
habe d'ehre
Hm? $_GET ist autoglobal und bleibt es auch, wenn man Werte zuweist und nicht nur abfrägt.
Offenbar muss ich irgendwo einen Murks gemacht haben. Jetzt habe ich mal alles wieder entfernt und neu eingegeben.
Jetzt geht es, vorerst. :-)
Vielleicht einfach Zeit fuer Wochenende, damit man auch wieder die Baeume im Wald sieht. ;-)
man liest sich
Wilhelm
Hello Dieter,
Meine Standardloesung dafuer ist ein kleines Ternary-Statement
$foo = !empty($_GET['foo']) ? $_GET['foo'] : ''; //bzw. array() oder was angemessen ist im Else-TeilWenn Du unbedingt $_GET['foo'] brauchst, sollte auch funktionieren:
$_GET['foo'] = !empty($_GET['foo']) ? $_GET['foo'] : '';
Das Ganze hat aber einen kleinen Schönheitsfehler:
Wenn der Wert von foo nun 0 ist, dann streikt das Statement.
Besser ist es hier, noch if(isset($_GET['foo'])) zu fragen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom