cristo: Sinvolle Abfragen via Funktion

Hallo

In meinem Formular werden eingaben getätigt diese ich wiederum auf Länge, verwendete Zeichen und Gross und kleinschreibung prüfen möchte.

Befor ich mich jetzt in 1000de IF-Schleifen verhaspel wollte ich fragen ob es da ein system gibt welchen erprobt, durchschaubar und gut funtkioniert?

Ich stelle mir vor dass ich oben ersteinmal 3-4 Funktionen erstelle á la:

function check_laenge($string,$max_chars) {
bla bla
}
function check_zeichen($string,$erlaubte_zeichen) {
bla bla
}

So dass ich nciht bei jedem feld mehr die frage stellen muss, sondern sie immer auf eine oben schon geführte funktion verweise... Aber wie bekomme ich soetwas hin, dass ich dann am ende eine liste habe mit:

Feld1:
länge: ok
zeichen: ok
grossklein: ok

Feld2:
länge: ok
zeichen: FEHLER
grossklein: ok

jemand schonmal soetwas gemacht?

ciao

  1. Huhu cristo

    jemand schonmal soetwas gemacht?

    man kann viele Validierungen mit Hilfe von regulären Ausdrücken
    "erschlagen".

    Das könnte man in einem Array in etwa so ablegen

    // NAME, REG_EXP, ERROR_MSG

    $validation = array();

    $validation[] = array('Vorname', '#^.{3,25}$#', 'Der Name muss mindestens drei aber höchstens 25 Zeichen haben');

    $validation[] = array('PLZ', '#^\d+$#', 'Die Postleitzahl darf nur Ziffern enthalten');

    // Und dann so abarbeiten

    $error_msg = array();

    foreach ($validation as $arr){

    if (isset($_POST[$arr[0]])){
        $success = preg_match($arr[1], $_POST[$arr[0]]);
      }
      if (!$success) {
        $error_msg[] = $arr[2];
      }
    }

    So ungefähr jedenfalls könnte man dass machen.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hi lulu

      Tut mir leid, ich kann dir nicht folgen was du dort tust... auch wenn ich es bei mir in den code übernehme verstehe ich nicht wo die variablen zum andocken sind... =/

      ciao

      1. wie mache ich es vor allem dass ich es kurz fassen kann?

        bisher sieht es immer so aus

        $cleanup_username="Judidth"; //Wurde zuvor durch ein strip_tag gejagt!

        if ($cleanup_username==""){$username_fehler="Kein username angegeben<br>";}else{$check_username="ok";}

        .. etc. ... die anderen wie plz oder name...

        if ($check_username!="ok" && $check_plz!="ok" &&....) {

        echo $fehlerusername.$fehler_plz.$fehler_name;
        }

        Der vorteil ist eben dass er checkt ob etwas stmmt.. wenn ja macht er ein ok ansonsten erstellt er eine fehelrmeldung... unten sieht er dass eine variabel (weil schon nichtmal gesetzt) nicht 'OK' ist und gibt alle möglichen fehlermeldungen aus... da hier nur die erstellt wurden die wirklich fehler aufwiesen gibt er natürlich nur diese aus...

        1. Hello,

          schön wäre es ja, wenn man ein Set von StandardChecks zusammenstellen würde, dann säter nur noch eine Matrix aujsfüllen müsste und daraus die ganze Applikation entsteht, so wie das eben bei developer2000 oder anderen Datenbank-Entwicklungstools geht...

          Welche Standardchecks fallen mir ein?

          Feld darf nicht leer sein
          Formatvorgaben (Feld darf enthalten:)
            - Großbuchstaben
            - Kleinbuchstaben
            - Ziffern
            - Umlaute
            - Sonderzeichen allgemein
            - Jokerzeichen
          Formatvorgaben (Feld muss enthalten)
            - @
            hier passen dann bestimmt die regulären Ausdrücke

          Feldlänge mininam
          Feldlänge maximal
          Numerischer Wert minimal
          Numerischer Wert maximal
          Typenprüfung

          • Datum Pflichtanggaben
             -- Jahr zweistellig
             -- Jahr vierstelling
             -- Monat
             -- Tag
          • Uhrzeit pflichtangaben
             -- Stunde
             -- Minute
             -- Sekunde
             -- hundertstel Sekunde
            Spezialformate
          • Persocheck
          • Prüfziffer EAN 8
          • Prüfziffer EAN 13

          ... usw.

          Viele dieser Vorgaben kann man schon aus der Tabellendefínition einer DB herauslesen. Das muss ja später zusammenpassen.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
  2. Moin cristo,

    Befor ich mich jetzt in 1000de IF-Schleifen verhaspel wollte ich

    Nur zur Info: Es gibt keine IF-Schleifen!

    "If" ist immer eine Bedingung, und WHILE ist eine Schleife.

    Gruß
    Mike

    --
    Murphy: "Wenn etwas schiefgehen kann, dann wird es auch schiefgehen."