1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Formularauswertung mit PHP

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von TeisT, 28.03.2004.

  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?!
     
  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.
     
Die Seite wird geladen...

Diese Seite empfehlen