Hallo Alexander!
Irgendwie klappt es nicht.
Ich erhalte nach dem Absenden die Meldung:
„Warning: Cannot modify header information - headers already
sent by (output started at …“
Irgendwo vor dem Header(…) wurde schon etwas ausgegeben, in welcher Zeile, steht da, wo jetzt die Punkte in der Meldung stehen. Das <?php muss direkt am Dateianfang stehen, vor dem Header(..) dürfen keine Ausgaben mit echo, etc. kommen.
Wenn der HTML-Code nun schon davor steht, und Sie es nicht umschreiben wollen, setzen Sie in die erste Erste Zeile <?php ob_start() ?>.
Auf der Seite „auswertung.php“ kommt dann nur noch der Text:
Vielen Dank, ANREDE VORNAME NAME! Aber die SEite erscheint
leider nicht.
In der „Auswertung“ muss dann nur noch die „Danke“ - Meldung stehen, wenn da noch Name / Vorname / Anrede dabei sein sollen, diese noch vorher in eine Session speichern, um in der auswertung.php drauf zugreifen zu können. Siehe ganz unten.
<?php session_start(); // Für die Zwischenspeicherung
// Formular mit Fehlerauswertung
[…]
if($error === false)
{
// E-Mail an meine Adresse schicken
$mailtext = „“;
Die folgende Zeile hatte ich schon einmal in der Nachricht drüber korrigiert, da hatte ich mich vertippt:
foreach($felder as $name) $mailtext .= $name . ": " . $_POST[$name] . ‚\n‘;
mail(‚[email protected]‘, ‚Betreff‘, $mailtext);
Um den Absender zu setzen:
mail(‚[email protected]‘, ‚Betreff‘, $mailtext, „From: [email protected]“);
Achtung: Sollten Sie da Eingabedaten als Absender (wie die angegebene Emailadresse) verwenden wollen, unbedingt
z.B. mit $absender = str_replace(Array(’\r’,’\n’), ‚‘, $_POST[‚email‘]); Sonderzeichen (Zeilenumbrüche) aus der Eingabe entfernen, damit da nicht jemand über eine „manipulierte“ Absenderangabe das Formular zum Spammen nutzen kann.
Für die Zwischenspeicherung in der Session:
$_SESSION[‚name‘] = $_POST[‚name‘];
$_SESSION[‚vorname‘] = $_POST[‚vorname‘];
Header(‚Location: http://www.domain.de/auswertung.php‘);
exit;
}
Ich erhalte zwar jedesmal eine E-Mail mit leeren Inhalt, aber
Ganz leer ? Zumindest die Felder sollten drin stehen.
auch der Absendername „[email protected]“
Ist oben nicht angegeben, siehe Ergänzung.
ist nicht so sehr schön. Woran liegt es, dass dieser seltsame
Absendername „erzeugt“ wird?
Das keiner angegeben war
In der Auswertung.php dann die Daten aus der Session lesen, nicht aus den (dann nicht mehr vorhandenen) Eingabedaten. An Anfang des Scriptes session_start() ?>, im Text dann z.B. Vielen Dank, <?php echo $_SESSION['name'] ?>
Alexander