überprüfen ob mehrere strings gesetzt sind via isset()

  • Wie kann ich überprüfen ob diese eingaben
    $Name=$_POST['name'];
    $email=$_POST['email'];
    $Jahr=$_POST['jahr'];
    $monat=$_POST['monat'];
    $tag=$_POST['tag'];
    $ingame=$_POST['ingame'];
    $dauer=$_POST['dauer'];
    $warum=$_POST['warum'];
    gemacht wurden (bestenfalls via isset() kann isset mehrer parameter annehmen ?)

  • Schreib dir doch ne Funktion, die nen Array bekommt, das dann durchläuft und foreach dann mit isst und !empty prüft.
    Dann füllst du bei jedem Fehler nen fehlerarray und gibst das dann zurück. Bzw rufst du ob es leer ist, wenn ja gib nen true zurück, sonst das Array

  • Ich hab jetzt eine Funktion geschrieben:

    Sollte doch eigtl klappen oder ? etwas primitiver als mein Vorposter es vorhatte aber ich bin noch anfänger :D

    3 Mal editiert, zuletzt von black0ut (27. Februar 2011 um 20:47) aus folgendem Grund: [/CODE]



  • bool isset ( mixed $var [, mixed $var [, $... ]] )

    Wenn mehrere Parameter übergeben werden, gibt isset() nur dann TRUE zurück, wenn alle Parameter belegt sind. Die Auswertung geht von links nach rechts und wird abgebrochen, sobald eine Variable nicht belegt ist.

    Einmal editiert, zuletzt von Pion (27. Februar 2011 um 21:22)

  • wäre so doch auch net viel schwerer gewesen...
    einzeln abzufragende werte könnte man damit auch testen, man müsste die einzelne variable halt vorher zu nem array casten.
    ich weiß akut nur net wie sinnig oder unsinnig so ein arraycast wäre, sprich ich habs bisher zwar einmal gemacht, aber weiß net ob ggf doch schmu dadurch passieren könnte

  • Öhm wenn du wirklich mehrere Werte auf einmal Prüfen willst dann nehme isset mit mehr Parametern..

    Abgesehen davon braucht man das eher selten, da man meist spezielle Fehlermeldungen generieren möchte


  • und woher weiß man dann:
    a) welcher parameter die abbruchbedingung ist?
    b) ob die vars zwar gesetzt , aber dennoch leer sind?

    mehrere parameter prüft man doch bei formularen, also braucht man das doch schon öfters..
    is zwar schön, dass du den tip gibst pion, aber wo bleibt die erläuterung warum du diesen tip gibst?!

  • Also, was bringt es dir das du eine globale Umwandlung machst?
    Deswegen musst doch unten im Script trotzdem Prüfen ob der Key zb im Array ist, also eine wirkliche Erspannis ist das nicht.
    Wie oft Prüfst du den ob alles gesetzt ist ohne spezielle Fehlermeldungen rauszuhauen ?


    Ansonsten vergleiche mal:

    Code
    function checkVars ($array) {
      $array = array_filter($array);
      return (empty($array)) ? true : $array;
    }
    
    
    var_dump(checkVars($_GET));
  • die globale umwandlung war nur ein hinweis für einen einzelwert...
    deine funktion da macht im grunde nichts anderes, als meine. vorteil bei dir is, dass es kürzer is.
    hab selber die filterfaxe noch net gekannt..
    aber letztlich ist es doch immer von vorteil ein array auszugeben, was die fehler enthält ist doch dass man die fehlerbehandlung später auch in einer eigenen funktion unterbringen kann und dann eben auch eigene errors definieren kann..

  • Wie kann ich daraus alles auslesen und schauen ob sie ausgefüllt sind ? :
    <html>
    <head>
    <title>Bewerbungsformular!</title>
    </head>
    <body>
    <form action="Bewerbung.php" method="POST"/>

    Ihr Name:<br/>
    <input type="text" name="name"><br/><br>
    Ihre Email Adresse: <br />
    <input type="text" name="email"><br/><br>
    Ihr Geburtsdatum: <br/><br>
    Jahr:<input type="text" size="10" name="jahr"/>Monat:<input type="text" size="10" name="monat"/>Tag:<input type="text" size="10" name="tag"/><br/><br>
    Ingame-Name:<br>
    <input type="text" name="ingame"/><br><br/>
    Spiele seit ca:<br>
    <input type="text" name="dauer"/><br/><br/>
    Warum solltest du auf den Server :<br/>
    <textarea name="warum" rows="10" cols="50"></textarea><br><br>

    <input type="submit" value="Abschicken!"/>
    </form>
    </body>
    <html>

  • $data=array($Name,$Email,$IngameName,$_POST['jahr'],$_POST['monat'],$_POST['tag'],$Spielzeit,$grund);

    function checkit($array)
    {
    for($i=0;$i<=8;$i++)
    {
    if($array[i]=="")
    {$voll=false; }

    }
    if($voll==false)
    {return false;}
    else
    {return true;}
    }

    if(checkit($data)==true)
    {die("lol");}
    elseif(checkit($data)==false)
    {die("w");}

    WARUM FUNKTIONIERT DAS NICHT BITTE BRAUCHE EINE ANTWORT !

  • Wieviele antworten brauchst du noch?
    Ich würde allerdings empty empfehlen, genauso wie grundlagen lernen