Beiträge von abcdefg

    Sorry, das mit den einklicken war ein Versehen! Ich hab das erst nach dem Absenden bemerkt.


    Ich werde mal versuchen, mir mit euren Beiträgen und Links ein besseres Formular aufzubauen. Merci für euer Feedback.

    Hallo zusammen


    Meine Kenntnisse und mein Verständnis für php sind noch sehr begrenzt.


    Dank vielen Programmieren, die Ihren Code netterweise zugänglich machen, genügten sie, um ein Kontaktformular „zu basteln“. Nun, was meine Frage betrifft und hier wird deutlich, dass mir das Verständnis noch fehlt, beim Aufruf der danke.php wird nur die Seite contact.php aufgerufen. Allerdings mit der danke.php, welche einfach oben am Kontaktformular angehängt ist.


    Könnte mir evtl. jemand erklären, weshalb das so ist und wie ich das ändern könnte?


    Hier mein Code:


    <?php

    mb_internal_encoding("UTF-8");

    if($_SERVER[ 'REQUEST_METHOD' ] == 'POST'){

    include_once('antispam.inc.php');

    if(!$errors){

    include_once('mail.inc.php');

    }

    }

    ?>


    <!doctype html>


    <?php if(isset($_POST[ 'submit' ]) && empty($errors) == false) {?>

    <div style="background:#FCC">

    <strong>Bitte überprüfen Sie Ihre Angaben!</strong><br/>

    <?php echo '<ul><li>'.implode('</li><li>',$errors).'</li></ul>'; ?>

    </div>

    <?php } ?>


    <fieldset>

    <h2>Bitte beachten Sie dass Felder die mit * gekennzeichnet sind, Pflichtangaben sind.</h2>

    <form id="phpform" method="post" action="<?php echo htmlspecialchars($_SERVER[ 'PHP_SELF' ]);?>" enctype="multipart/form-data" autocomplete="off">

    <label for="name">Name<span>*</span></label>

    <input name="name" type="text" autofocus="autofocus" required="required" value="<?=(isset($_POST[ 'name' ])) ? $_POST[ 'name' ] :''?>">

    <p><label for="email">Email<span>*</span></label>

    <input name="email" type="text" required="required" value="<?=(isset($_POST[ 'email' ])) ? $_POST['email'] :''?>">

    <label for="message">Nachricht<span>*</span></label><br/>

    <textarea name="message" rows="8" required="required"><?=(isset($_POST[ 'message' ])) ? $_POST[ 'message' ] :''?></textarea>

    <label for="spam">Ich Versende keinen Spam<span>*</span></label>

    <input name="gender" type="checkbox" required="required" <?=(isset($_POST[ 'gender' ])) ? "checked='checked'" : ''?>>

    <input type="submit" name="submit" value="Absenden">

    <div class="terms">

    <labe>Folgende Felder bitte frei lassen!</label>

    <input type="checkbox" name="terms">

    </div>

    </form>

    </fieldset>




    CODE ANTISPAM.INC.PHP:


    <?php

    mb_internal_encoding("UTF-8");

    error_reporting(E_ALL ^ E_NOTICE);


    //Variablen zum entfernen nicht benötigter Zeichen

    $name = $email = $gender = $message;

    if ($_SERVER['REQUEST_METHOD'] == 'POST'){

    $name = test_input ($_POST[ 'name' ]);

    $email = test_input ($_POST[ 'email' ]);

    $message = test_input ($_POST[ 'message' ]);

    $gender = test_input ($_POST[ 'gender' ]);

    }


    function test_input ($data){

    $data = trim ($data);

    $data = stripcslashes ($data);

    $data = htmlspecialchars ($data);

    }

    //Regex

    //$reg_ex_text = "/^([a-zA-ZüÜäÄöÖéÉüÈÇ]){1}?([a-zA-ZüÜäÄöÖöüâàÉÈÂÇß\-\.\s\'\´\`]*$/";


    //Spamcheck - Fehlerausgabe

    $errors = array();

    //Prüfen ob Formular abgesendet

    if (isset ($_POST [ 'submit' ])) {


    //Spamcheck mit jedem neuem Absenden zurücksetzen

    $spamcheck = false;

    //Spamcheck

    if (!isset ($_POST [ 'repeat_email' ]) || !empty ($_POST [ 'repeat_email' ]) || isset ($_POST [ 'terms' ])) {

    $errors[] = "Zusatzfelder wurden ausgefüllt, wir vermuten Spam und brechen hier ab.";

    } else {

    $spamcheck = true;

    }

    // Eingaben Validieren

    if ( $spamcheck == true ) {


    if (empty ($_POST [ 'name' ])) { //Wenn Name leer

    $errors[] = "Bitte geben Sie Ihren Namen an";

    }

    if (!empty ($_POST [ 'name' ])){ //mit trim und Stripslashes Zeichen entfernen, mit htmlspecialchars Cross-Site-Scripting vorbeuen

    $name = test_input ($_POST [ 'name' ]);

    }


    if (empty ($_POST [ 'email' ])) { //Wenn Email leer

    $errors[] = "Bitte Emailadresse angeben";

    } elseif (!filter_var ($_POST [ 'email' ], FILTER_VALIDATE_EMAIL)) { //Emailformat überprüfen ab PHP 5.2

    $errors[] = "Bitte geben Sie ein gültige Emailadresse an";

    }

    if (!empty ($_POST [ 'email' ])){

    $email = test_input ($_POST ['email']);

    }


    if (empty ($_POST [ 'message' ])) { //Wenn Nachricht leer

    $errors[] = "Bitte geben Sie Ihre Nachricht ein";

    }

    if (!empty ($_POST [ 'message' ]));

    $message = test_input($_POST['message']);


    if (!isset ($_POST [ 'gender' ])) { //Wenn Spamcheck nicht markiert

    $errors[] = "Bitte bestätigen Sie den Spamcheck";

    }

    }


    if (isset ($_POST [ 'submit' ]) && empty( $errors ) && $spamcheck == true ) {

    // Spamtest bestanden, alle erforderlichen Felder richtig ausgefüllt

    //Email Versand

    require_once('danke.php'); //Dankeseite einbinden

    }

    }

    ?>


    CODE MAIL.INC.PHP:


    <?php

    // Variablen initiieren

    $to="absender@domain.ch";

    $subject="Anfrage vom Kontaktvormular";

    $url_ok = "danke.php";

    $message="Name: ".$_POST['name']."\n"

    ."Email: ".$_POST['email']."\n"

    ."Nachricht: ".$_POST['message']."\n";

    $header="From:test1@vcap.me\nX-Mailer:PHPmail()\nX-Priority:1\nMSMail-Priority:high";


    //Mail versenden

    $bool=mail($to,$subject,$message,$header,$url_ok);


    //Bestätigung

    if ($bool) {echo "E-Mail wurde erfolgreich versandt!";

    }

    ?>