PHP Neuling: Mehrere Variablen im If

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

  1. 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

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. [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 :)

      --
      sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
      1. Danke für die Hilfe

      2. 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

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. 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

    --
    PCMCIA: People Can't Memorize Computer Industry Acronyms