Ironbird
Threadersteller
Dabei seit: 26.03.2006
Ort: -
Alter: 43
Geschlecht:
|
Verfasst So 23.04.2006 16:18
Titel Formularfelder nach erfolgreichem absenden ausblenden. |
 |
|
Hallo,
Ich habe ein einfaches Formular mir 3 Feldern gemacht.
Wenn man alle Felder ausgefüllt hat, kommt unter den Felder eine Nachricht, dass die Mail erfolgreich abgesendet worden ist.
Das ist bisher auch ganz ok so.
Was mich aber nun stört ist, dass die Felder weiterhin zu sehen sind. Und das auch noch komplett ausgefüllt.
Ich hätte es gerne, dass wenn das Formular erfolgreich abgeschickt worden ist, nur die Nachricht "Erfolgreich ....." kommt. Ohne den Feldern bzw. nicht ausgefüllt ist. Da man dann sofort die Nachricht nochmal abschicken kann. Da spamt man mich ja voll.
Kann man das irgendwie noch mit hineinprogramieren? Oder muss ich dazu auf eine weitere Seite verlinken, wo die Botschaft draufsteht, dass das Formular abgeschickt worden ist?
Am liebsten wäre mir, das man auf ne andere Seite verlinkt. Aber wie mache ich das? Mit include ()?
Hier der Quellcode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Kontaktformular</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="form.css">
</head>
<body>
<h2>Feedbackformular</h2>
<form action="<?php echo $_SERVER[´PHP_SELF´]; ?>" method="post">
Name: <input type="text" name="Name" value="<?php
if (isset($_POST[´Name´])) {
echo htmlspecialchars(stripslashes($_POST[´Name´]));
}
?>" /><br />
E-Mailadresse: <input type="text" name="email" value="<?php
if (isset($_POST[´email´])) {
echo htmlspecialchars(stripslashes($_POST[´email´]));
}
?>" /><br />
Kommentar:<br />
<textarea name="botschaft" cols="50" rows="5">
<?php
if (isset($_POST[´botschaft´])) {
echo stripslashes($_POST[´botschaft´]);
}
?>
</textarea><br />
<input type="submit" value="Abschicken" name="submit"/>
</form>
<?php
if (isset($_POST[´submit´])) {
$fehler = false;
$fehlertext = "";
if (empty($_POST[´Name´])) {
$fehler = true;
$fehlertext .= "Der Name fehlt!<br />\n";
}
elseif (strlen($_POST[´Name´]) < 3) {
$fehler = true;
$fehlertext .= "Der Name ist zu Kurz<br>\n";
}
$muster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (empty($_POST[´email´])) {
$fehler = true;
$fehlertext .= "Die E-Mail-Adresse fehlt!<br>\n";
}
elseif (preg_match($muster, $_POST[´email´]) == 0) {
$fehler = true;
$fehlertext .= "Die E-Mail-Adresse ist ungültig!<br />\n";
}
if (empty($_POST[´botschaft´])) {
$fehler = true;
$fehlertext .= "Das Kommentarfeld muß ausgefüllt werden!<br />\n";
}
elseif (strlen($_POST[´Name´]) < 3) {
$fehler = true;
$fehlertext .= "Der Kommentar ist zu Kurz<br />\n";
}
if ($fehler) {
echo "<p>$fehlertext</p>";
}
else {
$mailbody = $_POST[´Name´] . " schrieb\n\n";
$mailbody .= $_POST[´botschaft´];
$mailbody = stripslashes($mailbody);
$email = $_POST[´email´];
if (@mail("blabla@bla.de", "Feedback", $mailbody, "From: $email")) {
echo "<p>Danke! Die Botschaft wurde weiergeleitet!</p>\n";
}
else {
echo "<p>Leider gab es einen Sendefehler!</p>\n";
}
}
}
?>
</body>
</html>
Vielen Dank für eure Antworten
Ironbird
|
|