Nils Dehl: send mail - please only once!

Beitrag lesen

Hallo,

ich möchte die PHP-mail-Funktion für ein Eingabeformular verwenden. Dabei arbeite ich mit nur einer PHP-Datei, mit der wahlweise das ursprüngliche Eingabeformular oder eine Bestätigungsmeldung ausgegeben werden.

Ein kleines Problem liegt nun darin, daß nach dem Erscheinen der Bestätigungsmeldung durch ein Neuladen der Seite nicht etwa das ursprüngliche Formular wieder aufgerufen wird, sondern stattdessen die gleiche mail noch einmal versandt wird.

Wie kann ich bewirken, daß das Formular ein zweites mal aufgerufen werden kann und daß ein doppeltes versenden der mail vermieden wird?

Vielen Dank für alle Tipps,

Grüße,

Sebastian Becker

Das Zurücksetzen der Variable $send aus dem hidden field hat übrigens nicht geholfen.

gekürzter Code:

mail.php:

<?php include ("header.php"); ?>

<?php
// if message was submitted
if ($send == "ok")
{

// mail body
$mb = "$mailtext;\n";

// mail head
$mh  = "From: $sender <$from>";

// send mail
mail("$email","$subject","$mb","$mh");

// show confirm message
echo "Danke für Ihre Nachricht.";

wie gestaltest du das neuladen an dieser stelle? link oder meta oder was ?? oder das kann ich dir nett weiterhelfen

}

// show form
else {include ("form.inc");
}
?>

<?php include ("footer.php"); ?>


form.inc:

<form method="POST" action="<?php echo $PHP_SELF ?>">
<textarea rows="10" name="mailtext" cols="40"><?php echo $mailtext ?></textarea>
<input type="hidden" name="send" value="ok">
<input type="submit" value="send">
</form>