Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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]

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]

  • 3 Wochen später...
Oben unter "### Konfiguration ### " Muss ich da nur noch den Empfänger eintragen. Oder was noch?

Da steht einfach dein Teil von ### Konfiguration ### bis ### Ende Konfiguration ###.

  • 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:

  • Autor

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]

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

  • Autor

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.

  • Autor

}

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.

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.

  • Autor

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?

  • 3 Wochen später...

poste bitte nochmal den kompletten quellcode...du hast irgendwo oberhalb eine } vergessen...übrigends...das or die kannst du weg machen, da du ja schon dadrunter die abfrage machst, ob es klappt oder nicht und dann eine doppelte ausgabe bei einem fehler hättest

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.