Formularüberprüfung via PHP?

Dieses Thema Formularüberprüfung via PHP? im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Enrico, 18. Dez. 2002.

Thema: Formularüberprüfung via PHP? Hallo, kann mir jemand sagen, wie ich ein Formularfeld mit Hilfe vpn PHP auf Richtigkeit überprüfen kann? Und zwar...

  1. Hallo,

    kann mir jemand sagen, wie ich ein Formularfeld mit Hilfe vpn PHP auf Richtigkeit überprüfen kann?
    Und zwar brauche ich eine Prüfung für Email und noch ein anderes Feld. Wenn das Feld leer ist oder keine korrekte Eingabe erfolgt ist, so soll eine Fehlerseite ausgegeben werden ?

    Wäre super, wenn da jemand was weiß.

    Grüße und danke
    Enrico
     
  2. Hi

    <form method=deinedatei.php action=post>

    <input type=text name=email>
    <input type=text name=name>


    Dann zum Überprüfen:

    <?php
    $failure = false;

    if ($_POST[name] == ) {
    $failure = true;
    }

    if (!preg_match(/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i, $_POST)) {
    $failure = true;
    }

    if ($failure) {
    header(Location: fehler.html);
    }
    ?>

    Gruß, Michael
     
  3. Hi,

    danke für deine Antwort, die Prüfung funktioniert schon mal, kann ich es jetzt auch so machen, dass wenn failure aufgerufen wird eine Fehlermeldung in der Formularseite selbst erscheint und unter der Fehlermeldung die Formulare noch ausgefüllt da stehen?


    Grüße und danke
    Enrico
     
  4. Hi

    Als Action brauchst du deine Formularseite selber.

    Eintragen der alten Werte geschieht über:

    &lt;input type=text name=email value=&lt;?php echo $_POST ?>>
    oder ganz korrekt:
    echo isset($_POST[email]) ? $_POST[email] :

    Die Überprüfung darf dann natürlich nur durchgeführt werden, wenn das Formular abgeschickt wurde.
    &lt;input type=submit name=Abschicken>

    &lt;?php if (isset($_POST[Abschicken])) {
    obere Überprüfung
    }
    ?>

    und dann irgendwo in deinem Dokument:

    &lt;?php if ($failure) : ?>
    Ihre eingegebenen Daten stimmen nicht.
    &lt;?php endif ?>

    Gruß, Michael
     
  5. Hi,

    ich habe das ganze jetzt mal so geschrieben:

    <?php if (isset($_POST[Abschicken])) {

    //Überprüfung
    $failure = false;

    if ($_POST[name] == ) {
    $failure = true;
    }

    if (!preg_match(/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i, $_POST[from])) {
    $failure = true;
    }

    if ($failure) {
    include(fehler.php);
    }

    else {
    //Senden des Formulars
    include(config.php);

    mail($to, $subject, Diese Nachricht wurde am $datum gesendet.\n\n
    Name: $name
    Firma: $firma
    Telefon: $phone
    Email: $from\n

    Anfrage:
    $message\n

    Ich bitte um Rückantwort $wie.\n
    Protokoll:
    IP-Adresse: $ip
    Host: $host
    Plattform: $plattf,Von: $from);
    }
    }
    ?>



    funktioniert auch, nur wird die Fehlermeldung immer nur unter dem Forumlar ausgegeben, ich möchte sie aber gern darüber haben.
    Auch wenn ich:

    <?php if ($failure) : ?>
    Ihre eingegebenen Daten stimmen nicht.
    <?php endif ?>

    schreibe, funktioniert es nur, wenn dieser Code unter allen anderen steht?


    Grüße und danke
    Enrico
     
  6. Hi

    Schreib die Überprüfung ganz an den Anfang deiner Seite, dann kannst du die Fehlermeldung beliebig setzen.

    Gruß, Michael
     
  7. Hi,

    danke für deine Hilfe, jetzt funktioniert alles super...


    Grüße
    Enrico
     
  8. Hi,

    noch ein Problem:
    wie kann ich prüfen ob im Formularfeld Sonderzeichen eingegeben wurden (z.B. ä,ü,ö,ß,?,/,&amp;,...).
    Wenn ein Sonderzeichen enthalten ist, dann soll wieder eine Fehlerseite kommen?

    Grüße und danke
    Enrico
     
  9. Hi

    if (preg_match(/(ä|ü|ö|ß)/i, $text) {
    header(Location: fehler.htm);
    }

    | steht für oder
    i für gross/klein egal

    Gruß, Michael
     
  10. danke...

    Grüße
    Enrico