Formular Problem

klausi89

Erfahrenes Mitglied
Hallo ich habe ein Problem mit meinem Kontaktformular, vielleicht weiß irgendwer wo da mein Problem ist, ich kann irgendwie nix finden.

Zur Ausgangssituation:

die seite heißt kontakt.php und sie wird ins template integriert durch einen befehl in der index.php

PHP:
elseif ($_GET['page'] == "kontakt") {
include "pages/kontakt.php";
}

die seite ist erreichbar über /index.php?page=kontakt
dieses wird über htacces zu kontakt gekürzt

das Formular wird angezeigt aber wenn ich auf absenden drücke kommt nichts mehr und der footer meiner webseite wird auch nicht mehr angezeigt

hier der Code meiner kontaktseite komplett

PHP:
 <div class="card mb-3 border-primary">
       <h5 class="card-header bg-primary text-white"><img src="images/flogo.png">Kontakt</h5>
       <div class="card-body">

          <div class="card bg-dark text-white text-center">
           <div class="card-body">Sie haben eine Frage? Dann kontaktieren Sie mich gerne !!!</div>
          </div>
        
          <hr />
        <?php

    $empfaenger = 'info@erlemaeuse.de'; // deine-adresse@gmx.de kann es auch sein!
    $absender = 'info@erlemaeuse.de';

    $captcha1 ='Wie viele Beine hat ein Hund ?';
    $captcha2 ='Wie viele R&auml;der hat ein Auto ?';
    $captcha3 ='Wie viel ist 2 plus 2 ?';
    $captcha4 ='Wie viel ist 10 minus 6 ?';
    $captcha5 ='Wie viele Beine hat ein Tisch ?';
    $captcha6 ='Was ist 1 plus 3 ?';
    $captcha7 ='Was ist 1 mal 4 ?';
    $captcha8 ='Wie viele Beine hat ein Stuhl ?';
    $captcha9 ='Was ist 12 geteilt durch 3 ?';
    $captcha = array ($captcha1, $captcha2, $captcha3, $captcha4, $captcha5, $captcha6, $captcha7, $captcha8, $captcha9);
    shuffle($captcha);



    if(isset($_POST['abschicken'])){
        if(empty($_POST['name'])) $err[] = '<li>- den Namen angeben</li>';
        if(empty($_POST['email'])) $err[] = '<li>- die Email-Adresse angeben</li>';
        if(empty($_POST['text'])) $err[] = '<li>- welchen Wunsch haben Sie? Bitte den Text eingeben</li>';
        if($_POST['contact_antispam'] != '4' && $_POST['contact_antispam'] != 'vier') $err[] = '<li>- falscher Sicherheitscode</li>';

        if(!empty($err)) {
            echo '<div class="alert alert-danger">Bitte korrigieren Sie folgende Fehler:<br>
            <ul class="list-unstyled content-list text-danger">';
            foreach($err as $fehler){
                echo $fehler;
            }
            echo '</ul></div>';
        } else {

            $mail_header = "From: Tagesmutter Erlem&auml;use.de <".$absender.">\r\n";
            $mail_header .= "Reply-To: deine Kindertagespflege im Landkreis Hildburghausen <".$absender.">\r\n";
            $mail_header .= "X-Sender-IP: ".$_SERVER['REMOTE_ADDR']."\r\n";
            $mail_header .= "MIME-Version: 1.0\r\n";
            $mail_header .= "Content-Type: text/html; charset=UTF-8;\r\n";

            $mailnachricht = '<html><body>';
            while(list($feld,$wert)=each($_POST)) {
                if($feld!="abschicken" && $feld!="contact_antispam") {
                    $mailnachricht.=ucfirst($feld).": <br>".preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert)."<br><br>";
                }
            }
            $email = preg_replace("/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['email']);
            $email = preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "", $email);
            $mailnachricht.="\nDatum/Zeit: ".date("d.m.Y H:i:s");
            $mailnachricht.= '</body></html>';
            mail($empfaenger, "Betreff: Neue Anfrage an Tagesmutter Sandra Sch&auml;fer", $mailnachricht,$mail_header);
            echo '<div class="alert alert-info">Vielen Dank f&uuml;r Ihre eMail!<br><br>Ich werde diese schnellstm&ouml;glich bearbeiten.</div>';
            $submitted = true;
        }
    }

    if($submitted != true){ ?>

        <form role="form" method="post">
            <div class="form-group text-left">
                <label><i class="fa fa-user-circle" aria-hidden="true"></i> Name / Vorname:*</label>
                <input class="form-control" type="text" name="name" value="<?php echo $_POST['name']; ?>">
            </div>
            <div class="form-group text-left">
                <label><i class="fa fa-envelope" aria-hidden="true"></i> Email:*</label>
                <input class="form-control" type="text" name="email" value="<?php echo $_POST['email']; ?>">
            </div>
            <div class="form-group text-left">
                <label><i class="fa fa-phone-square" aria-hidden="true"></i> Telefon:</label>
                <input class="form-control" type="text" name="telefon" value="<?php echo $_POST['telefon']; ?>">
            </div>
            <div class="form-group text-left">
                <label><i class="fas fa-comment"></i> Betreff:</label>
                <input class="form-control" type="text" name="betreff" value="<?php echo $_POST['betreff']; ?>">
            </div>
            <div class="form-group text-left">
                <label><i class="fa fa-comments" aria-hidden="true"></i> Ihre Mitteilung:*</label>
                <textarea class="form-control" rows="5" name="text"><?php echo $_POST['text']; ?></textarea>
            </div>
            <div class="form-group text-left">
            <label><i class="fa fa-shield" aria-hidden="true"></i> Spamschutz*: <?php print $captcha[0]; ?></label>
                <input class="form-control" type="text" value="<?php echo $_POST['contact_antispam']; ?>" name="contact_antispam">
            </div>

            <button type="submit" name="abschicken" class="btn btn-success btn-block"><i class="fa fa-envelope"></i> Nachricht absenden</button>
               <div class="text-left"><i class="fa fa-info-circle" aria-hidden="true"></i><i> mit * markierte Felder sind Pflichtfelder</i></div>

        </form>
           <br />
<?php    } ?>



       </div> <!-- ende card-body -->
       <div class="card-footer" style="background-image: url('images/line_2x.png'); height: 70px;"></div>
      </div>

Vielleicht hat irgendwer eine idee wo da jetzt mein Fehler ist.

danke schon mal im voraus.
 
Zuletzt bearbeitet von einem Moderator:
Fehlt das Action wird die selbe Seite bei abschicken erneut geladen.
Heißt Du kannst auch ein Affenformular erzeugen.
In HTML4 wird es benötigt, kann aber leer bleiben in HTML5 kann das Formaction ja auch auf einem Button liegen und somit beim Form weggelassen werden.
 
Danke für eure Antworten,

das habe ich voll übersehen, allerdings habe ich nun schon folgendes ausprobiert

Code:
<form role="form" action="kontakt.php" method="post">
Code:
<form role="form" action="/kontakt.php" method="post">
Code:
<form role="form" action="index.php?page=kontakt" method="post">

alles führt nach wie vor nicht zum erfolg.

weiß leider immer noch nicht wo jetzt das problem liegt.

Formulare hab ich noch nie wirklich erstellt.

Brauche ich vielleicht ne extra page mit "danke für ihre Mail" oder sowas.
 
Hi,
nur mal so am Rande, aber nach der DSGVO kannst Du eigentlich inzwischen vergessen die Mail-Klasse von PHP zu verwenden. Da Mails verschlüsselt übertragen werden müssen!
Ich würd PHPMailer einsetzen.

Also es ist etwas schwierig bei der Kontrollstruktur das so aus der Ferne zu analysieren.
Hast Du mal geschaut ob der überhaupt an die Stelle zum verschicken kommt?
Ich geh sowas immer mit mehreren var_dumps('kontroll_01') durch. So das ich immer weiß wo sich das Script grad befindet.
 
Zurück