Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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]

Geschrieben

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...
  • 2 Wochen später...
Geschrieben

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:

Geschrieben

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]

Geschrieben

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

Geschrieben

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.

Geschrieben

Genau so ist es.

Poste mal 5-6 Zeilen vor und nach der Zeile 61 hier.

Du kannst den Fehler auch selber finden, indem Du alles auf Kommentar setzt und nach und nach wieder Blöcke rein nimmst. Dann kannst Du den Fehler eingrenzen und dir die entsprechende Zeile anschauen.

Frank

Geschrieben

}

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.

Geschrieben

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.

Geschrieben

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?

Geschrieben

Wenn der Fehler nicht weg ist wenn Du ab dem If alles auskommentierst dann ist der Fehler weiter oben zu suchen. Wie schon gesagt alles auskommentieren (aber wirklich alles) und dann nach und nach wieder reinnehmen bis der Fehler wieder kommt.

Frank

  • 3 Wochen später...
Geschrieben

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

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...