Zum Inhalt springen

Formmailer


Empfohlene Beiträge

Ich habe folgendes Mail-Formular. Ich möchte gerne, dass eine Erfolgsmeldung nach dem erfolgreichem Versenden eine kurze Meldung angezeigt wird. Eine Link zur Hauptseite oder so wäre da sinnvoll.

Schön wäre auch, dass man die Felder auf Richtigkeit prüfen könnte.

                    <?php

### Konfiguration ###

# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'philipp@philipp-schoene.de';

# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom = '"Formmailer-Test für www.notarbeck.de" <notariat@notarbeck.de>';

# Welchen Betreff sollen die Mails erhalten?
$strSubject = 'Feedback von der Homepage www.notarbeck.de';

# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = 'http://www.notarbeck.de';

# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter = ":\t";

### Ende Konfiguration ###

if($_POST)
{
$strMailtext = "";

while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}

if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
// header("Location: $strReturnhtml");
exit;
}

?>
<h1>Kontaktformular</h1>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
<dl>
<dt>Ihr Name:</dt>
<dd><input type="text" name="Versender" /></dd>
<dt>Ihre E-Mail:</dt>
<dd><input type="text" name="E-Mail" /></dd>
<dt>Ihre Nachricht:</dt>
<dd><textarea name="Nachricht" rows="5" cols="30">Bemerkungen</textarea></dd>
</dl>
<!-- Ende der Beispielangaben -->
<p>
<input type="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>
</body>
</html>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal kurz als Ansatz:

                    
<?php echo "<?xml version=\"1.0\"?>"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>New Document</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php

### Konfiguration ###

...

if(isset($_POST["submit"]))
{
$strMailtext = "";

while(list($strName,$value) = each($_POST)) // Hier noch submit rausfiltern
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}

if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
?>
<h1>Mail erfolgreich versandt</h1>
<a href="index.php">zurück zur Hauptseite</a>
<?php
}
else
{
?>

<h1>Kontaktformular</h1>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
<dl>
<dt>Ihr Name:</dt>
<dd><input type="text" name="Versender" /></dd>
<dt>Ihre E-Mail:</dt>
<dd><input type="text" name="E-Mail" /></dd>
<dt>Ihre Nachricht:</dt>
<dd><textarea name="Nachricht" rows="5" cols="30">Bemerkungen</textarea></dd>
</dl>
<!-- Ende der Beispielangaben -->
<p>
<input type="submit" name="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>
<?php
}
?>
</body>
</html>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...
  • 2 Wochen später...

Hallo,

Ein frohes neues Jahr wünsch ich euch allen erstmal!

So nun zum Problem:

Die Überprüfung bzw. die Statusmeldeung ob die E-Mail erfolgreich versandt wurde ist ganz einfach zu realisieren

Die Zeile :

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)

or die("Die Mail konnte nicht versendet werden.");

ersetzt du durch

if mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)

or die("Die Mail konnte nicht versendet werden."))

{

echo "Die Mail wurde erfolgreich verschickt <a href=\"weiter.html\">Weiter</a>";

}

else

{

echo "Sorry, Die Mail konnte nicht verschickt werden;

}

:)

Der rest deiner Fragen wurde ja schon beantwortet oder nicht?:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich habe die Zeilen ausgetauscht. Nur meldet er nun einen Fehler, den ich nicht finde: "Parse error: syntax error, unexpected T_STRING, expecting '(' in /mnt/jd1/07/335/00000016/htdocs/test/kontakt/kontakt.php on line 52"

Zeile 52 ist hier die oberste Zeile

if mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.")
{
echo "Die Mail wurde erfolgreich verschickt <a href=\"weiter.html\">Weiter</a>";
}
else
{
echo "Sorry, Die Mail konnte nicht verschickt werden;
}[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

moin

wenn du if benutzt dann muss das so aussehen

if (mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden."))
{
...
}
[/PHP]

:)

Ich hab in meinem vorherigen Beitrag wohl in der Eile die erste ( vergessen :beagolisc

mfg

John Pierre Haase

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe die beiden Fehler nun korrigiert. nun kommt die nächste Fehlermeldung:

Parse error: syntax error, unexpected $end in /mnt/jd1/07/335/00000016/htdocs/test/kontakt/kontakt.php on line 61

die Zeile ist die Zeie, in der nach dem "?>" der Zeilenumbruck kommt.

Ich denke, dass ihr den kompletten Code braucht. wegen der Unübersichtlichkeit möchte ich den nur posten, wenn der auch wirklich bebraucht wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

}

if (mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden."))
{
echo "Die Mail wurde erfolgreich verschickt <a href=\"weiter.html\">Weiter</a>";
}
else
{
echo "Sorry, Die Mail konnte nicht verschickt werden";
}
Zeile 60: ?>[/PHP]

Danach kommt ka nichts mehr. Ob 60 oder 61, kann durch mehrmaliges probieren variist habe. Gemeldet wurde immer die letzte Zeile.

Link zu diesem Kommentar
Auf anderen Seiten teilen

das or die(...) muss weg.

ich empfehle dir dringend dir PHP Grundlagen anzusehen, wenn du da drin rumcoden willst. Es ist nicht sehr sinnvoll wärend der Entwicklung für jeden Parserfehler fragen zu müssen, bzw. das im Forum zu stellen.

Nicht das du nicht fragen solltest, aber so ein Debugging kann lange dauern und komplex werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu palvoelgyi: Nein. Ich weiß auch nicht, was ich noch alle proieren soll.

zu Aiun: Ich bin ja dabei zu lernen. (Man lernt sowieso sein Leben lang) Nur wollte ich meine sache etwas beschleunigen um voranzukommen. Sonst verliert man auch die Lust daran. Ich habe das "or die(...)" wegemacht.

Der Fehler ist immer noch da. Soll ich doch mal den ganzen aktuellen Code dranhängen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...