Formularauswertung mit PHP

Diskutiere mit über: Formularauswertung mit PHP im Web-Programmierung Forum

  1. TeisT

    TeisT Thread Starter MacUser Mitglied

    Beiträge:
    125
    Zustimmungen:
    0
    Registriert seit:
    16.11.2003
    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

    Beiträge:
    504
    Zustimmungen:
    25
    Registriert seit:
    07.05.2003
    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...
Ähnliche Themen - Formularauswertung PHP Forum Datum
Werte der gleichen Schlüssel summieren (assoziativen Array) Web-Programmierung 25.08.2016
einfaches php. emailformular bei strato Web-Programmierung 08.08.2015
PHP Array in Google Maps Wegpunkte umwandeln Web-Programmierung 13.03.2015
PHP Update auf 5.6 im Terminal für Localhost (MAMP und Laravel) Web-Programmierung 12.09.2014
PHP: Nächster Tag auf Deutsch ausgeben Web-Programmierung 23.01.2014

Diese Seite empfehlen

Benutzerdefinierte Suche