Formularauswertung mit PHP

  1. TeisT

    TeisT Thread Starter MacUser Mitglied

    Mitglied seit:
    16.11.2003
    Beiträge:
    125
    Zustimmungen:
    0
    N'Abend!

    Also, angefangen hat das alles so: Mit viel Mühe und Arbeit hab ich versucht mit ein kleines Skript zu basteln, das mein Formular auswertet.

    <html>
    <body>
    <?php

    $name=$HTTP_POST_VARS['name'];
    $strasse=$HTTP_POST_VARS['strasse'];
    $plz=$HTTP_POST_VARS['plz'];
    $ort=$HTTP_POST_VARS['ort'];
    $fon=$HTTP_POST_VARS['fon'];
    $email=$HTTP_POST_VARS['email'];
    $mitteilung=$HTTP_POST_VARS['mitteilung'];
    $zeichen_name="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ‰ƒˆ÷¸‹fl- ";
    $zeichen_strasse ="0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ‰ƒˆ÷¸‹fl -. ";
    $zeichen_plz="0123456789";
    $zeichen_fon="0123456789/-+()";
    $zeichen_email="0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ-._@";
    $zeichen_mitteilung="0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ-._@:/#?";
    $a=0;
    $b="";
    $laenge=0;
    if ($name=="") {
    print ("<b>Bitte den Namen eingeben</b><br>");
    }
    else {
    $laenge=strlen($name);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($name, $a,1);
    if (strstr($zeichen_name, $b)==false) {
    print ("<b>Name: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }
    if ($strasse=="") {
    print ("<b>Bitte die Strasse eingeben</b><br>");
    }
    else {
    $laenge=strlen($strasse);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($strasse, $a,1);
    if (strstr($zeichen_strasse, $b)==false) {
    print("<b>Strasse: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }
    if ($plz=="") {
    printf ("<b>Bitte die Postleitzahl eingeben</b><br>");
    }
    else {
    $laenge=strlen($plz);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($plz, $a,1);
    if (strstr($zeichen_plz, $b)==false) {
    print("<b>Postleitzahl: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }
    if ($ort=="") {
    print("<b>Bitte den Ort eingeben</b><br>");
    }
    else {
    $laenge=strlen($ort);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($ort, $a,1);
    if (strstr($zeichen_name, $b)==false) {
    print("<b>Vorname: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }
    if ($fon=="") {
    printf ("<b>Bitte die Telefonnummer eingeben</b><br>");
    }
    else {
    $laenge=strlen($fon);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($fon, $a,1);
    if (strstr($zeichen_fon, $b)==false) {
    print("<b>Telefonnumer: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }

    if ($email=="") {
    printf ("<b>Bitte die Mailadresse eingeben</b><br>");
    }
    else {
    $laenge=strlen($email);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($email, $a,1);
    if (strstr($zeichen_email, $b)==false) {
    print("<b>Mail: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }
    if ($mitteilung!="") {
    $laenge=strlen($homepage);
    for ($a=0; $a<$laenge; $a++) {
    $b=substr($mitteilung, $a,1);
    if (strstr($zeichen_mitteilung, $b)==false) {
    print("<b>Mitteilung: Ungültige Zeichen, bitte überprüfen</b><br>");
    break;
    }
    }
    }

    print("Vielen Dank Herr $name für ihre Eingabe. Wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen!");
    ?>
    </body>
    </html>

    Leider wird der Print-Befehl auch ausgegeben, wenn nicht alle Felder ausgefüllt sind.
    Dann habe ich den Tipp bekommen mit regulären Ausdrücken zu arbeiten?!?! Hähhh?! :)So soll das ungefähr aussehen:

    <?php
    if_(ereg('([[:digit:]]{4,5})',_$plz,_$tmp))_$plz_=_$tmp[1];
    else_echo_'Sie haben einen ungültigen Wert im Feld "Postleitzahl" eingegeben!';
    ?>

    Abgesehen, das i ch das als "Amateur" nicht verstehen bekomme ich das auch so nicht aufgebaut. Hat vielleicht jemand ein Skript das so, oder so ähnlich aufgebaut ist?! Und das ich verstehe?!
     
    TeisT, 28.03.2004
    #1
  2. Garrancho

    Garrancho MacUser Mitglied

    Mitglied seit:
    07.05.2003
    Beiträge:
    504
    Zustimmungen:
    25
    es scheint mir ganz normal, daß der letzte Print Befehl auch ausgegeben wird wenn nix eigegben ist - er ist ja an keine Bedingung gebunden.

    versuch das ganze mal so:
    PHP:
    if($name==""){
    echo 
    "kein name";
    } else if(
    $strasse==""){
    echo 
    "keine strasse";
    } else {
    echo 
    "Alles OK!";
    }
    also den letzten Print bzw. echo Befehl nur dann ausgeben wenn keine der vorigen Bedingungen eintrifft.

    break beendet nur die derzeitige if abfrage und nicht das skript.
     
    Garrancho, 29.03.2004
    #2
Die Seite wird geladen...
Ähnliche Themen - Formularauswertung PHP
  1. mampfi
    Antworten:
    7
    Aufrufe:
    249
    mampfi
    04.07.2017
  2. simusch
    Antworten:
    2
    Aufrufe:
    187
    simusch
    04.05.2017
  3. Saugkraft
    Antworten:
    27
    Aufrufe:
    1.614
    wegus
    16.05.2017
  4. alex1000
    Antworten:
    5
    Aufrufe:
    357
    pmau
    26.08.2016