Antworten auf deine Fragen:
Neues Thema erstellen

Probleme mit meinem Kontaktformular

Trabilady

Aktives Mitglied

Hey ihr Lieben,

ich glaube ihr könnt es bald nicht mehr lesen :D ,
aber auch ich habe Schwierigkeiten mit meinem Kontaktformular... :uhm:

Problem:
Wenn ein User vergisst ein oder mehrere Felder in meinem Formular auszufüllen, bekommt er zwar die Fehlermeldung,
Ihre Nachricht wurde nicht gesendet, weil

  • ... fehlt.
mir wird die Mail dann aber trotzdem geschickt. :uhm:
Soll so gar nicht sein :motz:

Hier mein HTML-Code (PS. Ich weiß, dass ich nicht mit Tabellen arbeiten soll :D)

HTML:
<div id="middle">
    <h1>Kontaktformular:</h1>

    <form name="kontaktformular" action="php/kontakt.php" method="post">

    <table style="width:500px">
    <tr><td colspan="2"></td></tr>

    <tr>
    <td style="width:150px"><strong>Name:</strong></td>
    <td><input name="name" type="text" size="40" maxlength="100" /></td>
    </tr>

    <tr>
    <td style="width:150px"><strong>E-Mail Adresse:</strong><br /></td>
    <td><input name="mail" type="text" size="40" maxlength="100" /></td>
    </tr>

    <tr>
    <td style="width:150px"><strong>Betreff:</strong></td>
    <td><input name="betreff" type="text" size="40" maxlength="50" /></td>
    </tr>

    <tr>
    <td style="width:150px"><strong>Nachricht:</strong></td>
    <td><textarea name="text" cols="40" rows="10"></textarea></td>
    </tr>

    <tr>
    <td style="width:150px">&nbsp;</td>
    <td>&nbsp;</td>
    </tr>

    <tr>
    <td style="width:150px">&nbsp;</td>
    <td><input type="submit" value="Versenden" name="submit" />
    </tr>
    </table>
    </form>
    </div>
und hier mein Problemkind

PHP:
<?php

    $fehler =''; //Fehler, wenn nichts im Feld steht
    $name = $_POST['name'];
    $mail = $_POST['mail'];
    $text = $_POST['text'];
    $betreff = $_POST['betreff'];

// Kontrolle, ob alle Felder ausgefüllt sind

    if(empty($name)) {  //wenn $name fehlt, dann gib $fehler aus
        $fehler .= '<li>der Absendername fehlt.</li>';
    }

    if(empty($mail)) {
        $fehler .= '<li>die Mailadresse fehlt.</li>';
    }

    if(empty($text)) {
        $fehler .= '<li>keine Nachricht eingetragen ist.</li>';
    }

    if(empty($betreff)) {
        $fehler .= '<li>der Betreff fehlt</li>';
    }


    if ($fehler) {
        echo '<p>Ihre Nachricht wurde nicht gesendet, weil</p>';
        echo "<ul>" . $fehler . "</ul>";
    }
      else {
        $return = chr(13).chr(10);
        $nachricht = strip_tags($nachricht); // entfernt HTML-Tags
        $nachricht = htmlentities($nachricht);// Sonderzeichen umwandeln
        $nachricht = nl2br($nachricht);      //setzt Zeilenumbrüche so, wie vom User eingegeben
        echo "<p>Ihre Nachricht wurde versendet.</p>";
    }

//Angaben für Mailausgabe
        $return = chr(13) .chr(10);
        $an = "xxx@xxx.de";
        $betreff = "Mein Kontaktformular";
        $von = "From: Kontaktformular <xxx@xxx.online.de>";
        $datum = "Datum: ".date("j.n.Y") . $return;
        $zeit = "Zeit: "  .date ("H:i") . $return;
        $abs = "Von: ".$name."  <".$mail.">".$return;
        $trennen = "--------------------------------------------------------------------".$return;
        $nachricht = $datum.$zeit.$abs.$trennen.$text;

//Versendet Mail mit oben angegebenen Daten

        mail ($an,$betreff,$nachricht,$von);

?>

Ps. Ich oute mich hiermit als PHP-Frischling und bitte darum, nicht mit Fachbegriffen erschlagen zu werden :rot:

DANKE SCHON MAL :)
 

fakerer

Aktives Mitglied

AW: Probleme mit meinem Kontaktformular

//Angaben für Mailausgabe
//Versendet Mail mit oben angegebenen Daten

die beiden teile gehören in die else schleife also die geschwungene klammer einfach nach unten setzen.


PHP:
<?php
    if ($fehler) {
        echo '<p>Ihre Nachricht wurde nicht gesendet, weil</p>';
        echo "<ul>" . $fehler . "</ul>";
    }
      else {
        $return = chr(13).chr(10);
        $nachricht = strip_tags($nachricht); // entfernt HTML-Tags
        $nachricht = htmlentities($nachricht);// Sonderzeichen umwandeln
        $nachricht = nl2br($nachricht);      //setzt Zeilenumbrüche so, wie vom User eingegeben
        echo "<p>Ihre Nachricht wurde versendet.</p>";
    

//Angaben für Mailausgabe
        $return = chr(13) .chr(10);
        $an = "xxx@xxx.de";
        $betreff = "Mein Kontaktformular";
        $von = "From: Kontaktformular <xxx@xxx.online.de>";
        $datum = "Datum: ".date("j.n.Y") . $return;
        $zeit = "Zeit: "  .date ("H:i") . $return;
        $abs = "Von: ".$name."  <".$mail.">".$return;
        $trennen = "--------------------------------------------------------------------".$return;
        $nachricht = $datum.$zeit.$abs.$trennen.$text;

//Versendet Mail mit oben angegebenen Daten

        mail ($an,$betreff,$nachricht,$von);
}

?>
 
Zuletzt bearbeitet:

Trabilady

Aktives Mitglied

Weitere Frage....

:kopfpatsch: Das ist mal wieder typisch ich :rot: Ein herzliches :danke: an Dich fakerer!

 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.455
Mitglieder
67.558
Neuestes Mitglied
StarsMan
Oben