Finde den Fehler nicht :( PHP-Code

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

  • #16
    die genaue überprüfung der feldinhalte ist schon mit javascript in der html-datei passiert. hier findet quasi eine zweite überprüfung statt, ob die werte per post auch rüberkamen. und der auskommentierte if block hat nix mit dem else zu tun! glaubs mir halt .-) siehe hierzu unten im code den kommentar "Anfang des größeren Blocks, falls kein Fehler auftrat. Inkl. Mailversand und DB-Eintrag" klar, die html-datei habt ihr nicht gesehen, drum habt ihr da auch nicht nach dem fehler sehen können .-/ aber das ergebnis zählt ja und nu passt alles. hier nochmal die funktionierende php-datei, an der ausgabe der mails, den fehlermeldungen auf englisch, etc. arbeit ich natürlich noch.


    PHP-Code:
    <html> 
    <head> 
    </head> 
    <body> 

    <?php 
    // Variablen werden mit Daten aus dem POST der HTML-Form gefüllt

    $vorname $_POST['vorname']; 
    $nachname $_POST['nachname']; 
    $email $_POST['email']; 
    $strasse $_POST['strasse']; 
    $plz $_POST['plz']; 
    $wohnort $_POST['wohnort']; 
    $tel $_POST['tel']; 
    $fax $_POST['fax']; 
    $homepage $_POST['homepage']; 

    // Überprüfung, ob alle Parameter vorhanden sind
        
    if($vorname){} 
            else{ 
                
    $error.="Please, go back and fill out your first name\n"
                } 

        if(
    $nachname){} 
            else{ 
                
    $error.="Please, go back and fill out your last name\n"
                } 

        if(
    $email){} 
            else{ 
                
    $error.="Please, go back and fill out your e-mail address\n"
                } 

        if(
    $tel){} 
            else{ 
                
    $error.="Please, go back and fill out your phone number\n"
                } 

        if(
    $strasse){} 
            else{ 
                
    $error.="Please, go back and fill out your mailing address\n"
                } 

        if(
    $wohnort){} 
            else{ 
                
    $error.="Please, go back and fill out your city name\n"
                } 

        if(
    $plz){} 
            else{ 
                
    $error.="Please, go back and fill out your zip code\n"
                } 

    // Anfang des größeren Blocks, falls kein Fehler auftrat. Inkl. Mailversand und DB-Eintrag
    // Mail an den Eintragenden

        
    if($error == "") { 
            echo 
    "Thank you for inquiring about us! A receipt of your submission will be e-mailed to you almost immediately."

    $mailContent "--------CONTACT--------\n" 
                
    ."First Name: ".$vorname."\n" 
                
    ."Last Name: ".$nachname."\n" 
                
    ."E-mail: ".$email."\n" 
                
    ."Website: ".$homepage."\n\n--------PHONE--------\n" 
                
    ."Phone: ".$tel."\n" 
                
    ."Fax: ".$fax."\n" 
                
    ."Street Address: ".$strasse."\n" 
                
    ."City: ".$wohnort."\n" 
                
    ."Zip Code: ".$plz."\n\n--------INFO--------\n";

    // Mail an den Homepagebesitzer

    $toAddress "meine@mail.com";
    $subject "Betreff fuer Homepagebesitzer"
    $recipientSubject "Betreff fuer Absender";
    $receiptMessage "Thank you ".$vorname." for inquiring about MyWebSite.com's Products!\n\n\nHere is what you submitted to us:\n\n" 
                
    ."--------CONTACT--------\n" 
                
    ."First Name: ".$vorname."\n" 
                
    ."Last Name: ".$nachname."\n" 
                
    ."E-mail: ".$email."\n" 
                
    ."Website: ".$homepage."\n\n--------PHONE--------\n" 
                
    ."Phone: ".$tel."\n" 
                
    ."Fax: ".$fax."\n" 
                
    ."Street Address: ".$strasse."\n" 
                
    ."City: ".$wohnort."\n" 
                
    ."Zip Code: ".$plz."\n\n--------INFO--------\n";


    // Versand der oben definierten Mails

    mail($email$subject$receiptMessage,"From:$toAddress"); 
    mail($toAddress,$recipientSubject,$mailContent,"From:$email"); 

    //--->echo $mailContent; 

    // DB-Verbindungsaufbau   # WICHTIG: Hier Datenbankverbindung immer ändern auf die gewünschte! #
    $connection mysql_connect("host","user""pwd") or die("Unable to connect!");

    mysql_select_db("database") or die("Unable to select database!"); /* change this! */ 

    // Eintrag in die DB  # WICHTIG: Hier Datenbankfelder anpassen, wie oben auch! #
    $query="INSERT INTO kontaktformular ( 
                vorname,
                nachname, 
                email, 
                strasse, 
                plz,
                wohnort, 
                tel, 
                fax, 
                homepage)
            VALUES( 
                '"
    .$vorname."', 
                '"
    .$nachname."', 
                '"
    .$email."', 
                '"
    .$strasse."', 
                '"
    .$plz."', 
                '"
    .$wohnort."', 
                '"
    .$tel."', 
                '"
    .$fax."', 
                '"
    .$homepage."')"

    $result mysql_query($query) or die("Error in query:".mysql_error()); 

    //if ($result) 
        //echo mysql_affected_rows()." row inserted into the database effectively."; 

    mysql_close($connection); 

            } 
            
    // Falls ein Feld nicht ausgefüllt wurde und es beim JavaScript übersehen wurde, wird hier nochmal eine Prüfung vorgenommen:

        
    else{ 
                
    //print "Sorry, but the form cannot be sent until the fields indicated are filled out completely - \n"; 
                //print "$error\n"; 
                
    print "vorname: $vorname\n";
                print 
    "nachname: $nachname\n";
                
    //print "$email\n";
                //print "$strasse\n";
                //print "$plz\n";
                
    print "wohnort: $wohnort\n"
                
    //print "$tel\n";
                //print "$fax\n";
                //print "$homepage\n";
                //print "\n"; 
                //print "\n"; 
                //print "Please use your \"Back\" button to return to the form to correct the omissions.  Thank you.\n"; 
            


    ?> 
    </body> 
    </html>
    nochmals. danke an alle. is ne feine sache das ding. wenn ich jetzt noch wüßt, ob ich beim umstellen der erzeugten mail von plaintext auf html irgendwelche grafiken einbinden kann, wär ich voll zufrieden. aber des geht wohl nur mit link übers internet, oder?

    Kommentar


    • #17
      Gut, wenn es jetzt klappt, aber glaub Du mir halt auch :-)) , dass in der ersten Version Deines Listings, der Teil nach der Error-Abfrage durch eine geschweifte Klammer geschlossen war, deshalb der untere Else-Block keinen Sinn mehr machte und PHP zu recht meckerte.
      PHP-Code:
          if($error == "") { 
              echo 
      "Thank you for inquiring about us! A receipt of your submission will be e-mailed to you almost immediately."
              } 
      Das hat sich ja nun in Deinem zweiten Listing geändert und nun passt es auch.
      Generell ist es aber auch absolut sinnvoll, wenn Du auf der PHP-Seite, die die Einträge in die DB vornimmt, die Eingaben ruhig nochmal auf deren Sinn überprüfst.

      Kommentar


      • #18
        jo mit der klammer, die mittlerweile verschwunden ist hast du ja recht die war erst nicht da. dann wußte ich nicht wo der fehler liegt und dachte, die gehört da noch rein. dann hab ich aber gesehen daß es falsch war und sie wieder rausgeworfen, leider nach dem ersten posting.

        über die zweite abfrage mach ich mir nochmal gedanken. erstmal mach ich nun noch ein passendes gästebuch fertig. *gg

        Kommentar

        Lädt...
        X