PHP-Programmierung funktioniert nicht richtig

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-Programmierung funktioniert nicht richtig

    In meinen Programm funktioniert folgendes nicht.


    Es dient dazu ein Formular zu erzeugen mit 6 Eingabefelder.
    Wenn die Felder falsch oder nicht ausgefüllt sind wird der Feldname
    rot dargestellt.
    Bei dem Feld Vorname wird aber keine Eingabe akzeptiert. Die Feld-
    beschreibung bleibt rot und die Eingabe verschwindet nach der Enterein-
    gabe.
    Bei allen anderen Feldern funktioniert es so wie es soll.
    Es erscheint auch keine Fehlermeldung.
    Wo habe ich hier einen Fehler gemacht.
    Das PHP-programm hängt hinten dran.
    PS: Der Editor hat einige Einrückungen nicht übernommen!!
    Vielleicht hat jemand eine Idee woran es liegen kann.

    Willi

    PHP-Code:
    <html>
     <head>
        <title>Benutzer</title>
     </head>
    <body>
    <?
        include "mysql.inc"; 
        
        // 1) VARIABLEN anlegen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        $vorname_control=true;
        $name_control=true;
        $geburtstag_control=true;
        $email_control=true;
        $strasse_control=true;
        $postleitzahl_control=true;
        $total_control=true;
        $vorname="";
        $name="";
        $geburtstag="";
        $email="";
        $strasse="";
        $postleitzahl="";
        
        
        // 2) Überprüfen ob Formulardaten empfangen werden ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // if(isset($name)){   // unsichere Methode --Daten können auch per GET übegeben werden
        if($HTTP_POST_VARS['control'])
        {    
            print "Daten empfangen<br>";
            
            // 3) Übertragen der empfangenenen Daten in die lokalen Variablen
            $vorname=trim($HTTP_POST_VARS['vorname']);
            $name=trim($HTTP_POST_VARS['name']);
            $geburtstag=trim($HTTP_POST_VARS['geburtstag']);
            $email=trim($HTTP_POST_VARS['email']);
            $strasse=trim($HTTP_POST_VARS['strasse']);
            $postleitzahl=trim($HTTP_POST_VARS['postleitzahl']);
            
            // 4) Überprüfen der empfangenenen Daten 
            if(!(strlen($vorname)>0))
            {
                $total_control=false;
                $vorname_control=false;
            }
            
            if(!(strlen($name)>0))
            {
                $total_control=false;
                $name_control=false;
            }
            
            if(!(preg_match("/^\d\d\.\d\d\.\d{4}$/",$geburtstag)))
            {
                $total_control=false;
                $geburtstag_control=false;
            }
            // Email soll kein Pflichtfeld sein -->
            // Nur wenn überhaupt eine E-mail angegeben wurde, diese überprüfen.
            if(strlen($email)>0)  
            {
                if(!(preg_match("/^[a-zA-Z\d_\-\.]+@[a-zA-Z\d_\-]+\.[a-zA-Z]{2,4}$/",$email)))
                {
                    $total_control=false;
                    $email_control=false;
                }
            
            }
            
            if(!(strlen($strasse)>0))
            {
                $total_control=false;
                $strasse_control=false;
            }
            
            if(!(strlen($postleitzahl)>0))
            {
                $total_control=false;
                $postleitzahl_control=false;
            }
            // 5) Reaktion auf Auswertung
            //    entweder: kein Fehler --> Daten in DB schreiben
            if($total_control==true)
            {    
                $connect=mysql_connect($host,$username,$password);
                mysql_select_db('db_brasilien',$connect);
                mysql_query("insert into t_frauen_aus_recife (vorname,name,geburtstag,email,strasse,postleitzahl) values ('$vorname','$name','$geburtstag','$email','$strasse','$postleitzahl')",$connect);
                mysql_close();
                
                // Bestätigungsmail versenden
                
                print "Ihre Daten wurden entgegengenommen<br>";
                exit;
            }
            
            // oder: --> Formular erneut anzeigen mit hervorgehobenen Fehlern
            if($total_control==false)
            {
                print "Bitte korrigieren Sie die Rot markierten Felder<br>";
                        
            }
            
        }
        
    ?>

        <form action="<? echo $PHP_SELF; ?>" method="POST">
            <input type="text" vorname="vorname" value="<? echo $vorname ?>">
            <? if($vorname_control==true){echo "Vorname";}else{echo "<font color='red'>Vorname *</font>";} ?><br>
            <input type="text" name="name" value="<? echo $name ?>">
            <? if($name_control==true){echo "Name";}else{echo "<font color='red'>Name *</font>";} ?><br>
            <input type="text" name="geburtstag" maxlength="10" value="<? echo $geburtstag ?>">
            <? if($geburtstag_control==true){echo "Geburtstag";}else{echo "<font color='red'>Geburtstag *</font>";} ?>&nbsp;&nbsp;Format: (03.03.1900)<br>
            <input type="text" name="email" value="<? echo $email ?>">
            <? if($email_control==true){echo "Email";}else{echo "<font color='red'>Email *</font>";} ?>&nbsp;&nbsp;(Email ist keine Pflichteingabe)<br>
            <input type="text" name="strasse" value="<? echo $strasse ?>">
            <? if($strasse_control==true){echo "Strasse";}else{echo "<font color='red'>Strasse *</font>";} ?><br>
            <input type="text" name="postleitzahl" value="<? echo $postleitzahl ?>">
            <? if($postleitzahl_control==true){echo "Postleitzahl";}else{echo "<font color='red'>Postleitzahl *</font>";} ?><br>
            <input type="hidden" name="control" value="data">
            <input type="submit" value="abschicken">
        </form>     


    <?
        //print "<hr>";
        //show_source(__FILE__);
    ?>
    </body>
    </html>
    EDIT:
    php-tags by Abraxax
    Zuletzt geändert von Abraxax; 26.05.2003, 13:16.

  • #2
    PHP-Code:
    <input type="text" vorname="vorname" value="<? echo $vorname ?>">
    das Attribute "vorname" kenn ich persönlich nicht
    H I L F E
    GD FreeType Antialising
    Gesuch PHP Entwicklungsumgebung
    ------------------------------------------
    Der Cmabrigde rael tset, sruf whoin du wlilst

    Kommentar


    • #3
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        um Robert´s Hinweis noch etwas deutlicher zu machen:

        <input type="text" [COLOR=red]vor[/COLOR]name="vorname" value="<? echo $vorname ?>">

        das rot markierte muss weg.

        P.S. - noch ein Tipp: Wenn du normalen Text in eine HTML-Seite (ganz besonders in Formularfelder) ausgibst, benutze die Funktion htmlentities.
        Zuletzt geändert von Titus; 27.05.2003, 10:10.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X