Mehrere Variablen im If
PHP Neuling
- php
0 Tom0 Deus Figendi0 PHP Neuling0 Tom
0 Der Martin
Hi ich hab da mal die Frage, wie man Mehrere $_GET[''] in eine If mit empty() machen kann, sodass es zuerst die erste Variable prüft, und dann die nächste, ich hab dass hier schon:
<?php
if (empty ($_GET['xxxx']) ($_GET['xxxx']) ($_GET['xxxx']) == TRUE)
{
include 'xxxx.php';
}
else
{
include 'xxxx.php';
}
Kann man die verscheidenen $_GET irgentwie trennen, sodass es alle prüft, und sobald eins falsch ist das dokument aufruft
Hello,
Hi ich hab da mal die Frage, wie man Mehrere $_GET[''] in eine If mit empty() machen kann, sodass es zuerst die erste Variable prüft, und dann die nächste, ich hab dass hier schon:
<?php
if (empty ($_GET['xxxx']) ($_GET['xxxx']) ($_GET['xxxx']) == TRUE)
{
include 'xxxx.php';
}
else
{
include 'xxxx.php';
}
if (empty($_GET['a']) or empty($_GET['b']) or empty($_GET['xxxx']))
{
## eine der Variablen fehlte oder war "leer"[1]
include 'xxxx.php';
}
else
{
## alle Variablen waren vorhanden und gefüllt
}
[1] empty() erkennt leider auch auf "leer", wenn eine '0' übertragen worden ist.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
[1] empty() erkennt leider auch auf "leer", wenn eine '0' übertragen worden ist.
Ich glaube um das zu vermeiden kann man isset() verwenden.
Isset gibt FALSE zurück wenn die Variable nicht existiert oder NULL enthält. "" (Leerstring) sowie 0 müsste TRUE zurück geben.
Welches Verhalten gewünscht ist muss der PHP Neuling selbst wissen :)
Danke für die Hilfe
Hello,
[1] empty() erkennt leider auch auf "leer", wenn eine '0' übertragen worden ist.
Ich glaube um das zu vermeiden kann man isset() verwenden.
Isset gibt FALSE zurück wenn die Variable nicht existiert oder NULL enthält. "" (Leerstring) sowie 0 müsste TRUE zurück geben.
Das stimmt.
Welches Verhalten gewünscht ist muss der PHP Neuling selbst wissen :)
Und welche Behandlung außerdem noch notwendig sein könnte, sollte PHP Neuling auch überlegen. Alle Paramerter, die beim Request übergeben werden, und von PHP im Script bereitgestellt werden, werden von PHP entweder zu einem String (Skalar) oder zu einem Array aus Strings umgewandelt.
Diese Strings können dann auch führende und anhängende Leerzeichen enthalten. Ob sie (ggf. nach der Bereinigung) den gewünschten Datentyp repräsentieren können, muss man dann selber prüfen. Es reicht also i.d.R. nicht, nur das Vorhandensein der Variable zu kontrollieren.
Dafür könnten sich z.B. auch die Filter-Funktionen eignen
http://de3.php.net/manual/en/book.filter.php,
die es seit PHP 5.2 gibt. Die sind sicherlich noch ein wenig gewöhnungsbedürftig, gehen aber mMn in die richrtige Richtung, wenn man ganze Formularinhalte prüfen will.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
wie man Mehrere $_GET[''] in eine If mit empty() machen kann, sodass es zuerst die erste Variable prüft, und dann die nächste
du solltest dich mit logischen Ausdrücken (UND- und ODER-Verknüpfungen) befassen. Du willst abfragen, ob $_GET['a'] empty ist, oder $_GET['b'] empty ist, oder $_GET['c'] empty ist? - Dann formuliere das doch auch!
if (empty($_GET['a']) || empty($_GET['b']) || empty($_GET['c']))
{ ...
}
ich hab dass hier schon:
if (empty ($_GET['xxxx']) ($_GET['xxxx']) ($_GET['xxxx']) == TRUE)
Das ist natürlich Käse, schon syntaktisch.
So long,
Martin