2012-04-09 32 views
0

Ich speichere die Formularelemente in eine Datei und das folgende funktioniert wie erwartet.Überprüfen, ob Formularelement vorhanden ist

$t_str .= "viewMandatory=".$_GET['viewMandatory'] ."\n"; 

Aber was ich brauche, ist, dass, wenn $ _GET nur gesetzt wird, dann sollte es auf „t_str“ string angehängt werden.

Wenn kein Wert für viewMandatory vom Formular empfangen wird, sollte nichts gedruckt werden. Wie fügt man der obigen Aussage diesen Check hinzu?

+0

Es gibt [viele] (http://stackoverflow.com/questions/3496971/check-if-post-exists) von [ähnlich ] (http://stackoverflow.com/questions/3432282/check-if-any-variables-are-passed-in-a-get) Fragen, und eine [Google-Suche ist sehr fruchtbar] (http: // www. google.co.uk/webhp?#hl=de&output=search&sclient=psy-.ab&q=check+if+get+variableexists&fp=1). – Alex

Antwort

5
if (!empty($_GET['viewMandatory'])){ 
$t_str .= "viewMandatory=".$_GET['viewMandatory'] ."\n"; 
} 

Nach 292 Fragen sollten Sie die leere() Funktion gestoßen.

+0

Ich denke, Sie fehlen eine einschließende '()' für die Bedingung – Joseph

+0

danke @Joseph, dumme mich –

1
$t_str .= (!empty($_GET['viewMandatory'])?$_GET['viewMandatory']:null; 

diese Weise werden Sie weniger Code haben, was es einfacher macht zu lesen (zumindest für mich, ich liebe Kurzformen), aber der Code wird ausgeführt, jedes Mal bitten Sie die Seite. Das ist bei Dragon's Lösung nicht der Fall.

Aber denken Sie an Code-Injektion. Filtern Sie $ _GET ['viewMandatory'] den correctway, bevor Sie ihn zu Ihrem String hinzufügen! Ansonsten schlechter Code kann ganz einfach injiziert werden, zum Beispiel:

www.yourpage.com/page.php?viewMandatory=';BAD_CODE_HERE (or " instead of ') 
1
Use php isset  


if (isset($_GET['viewMandatory'])){ 
$t_str .= "viewMandatory=".$_GET['viewMandatory'] ."\n"; 
} 
Verwandte Themen