Nach absenden auf index.html weiterleiten

sascha0815

Grünschnabel
Hallo zusammen,

ich habe ein PHP Script für ein Kontaktformular, nun möchte ich wenn man auf absenden drückt, dass nach dem senden auf die index.html zurückgesprungen wird.

Das senden funktioniert, allerdings zeigt er mir eine blank seite an.

Wie kann ich das am einfachsten bewerkstelligen?
 
Hi,

füg mal in dem Script, an das das Formular zunächst gesendet wird, nach dem erfolgreichen Absenden folgende Zeile zur Weiterleitung ein:

PHP:
 header("Location: [Pfad zur index.html]"); // ohne eckige Klammern
 
Das mit dem header hab ich schon probiert, ich poste mal das script und vllt ist es dann was einfacher.

Code:
<?php
if ($_POST) {
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];

 # Ihre E-Mail-Adresse
 $an ="info@meine-email.de";

 # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet
 $text = "Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
 ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.";
 @mail($an, $betreff, $text, "From: " . $email);
 # echo "<b>Ihre Nachricht wurde gesendet!</b>";
 header ("location: index.html");
}
else { ?>

ist da der header richtig ?
Habe auch schon mehrer Varianten probiert

Danke im vorraus
 
Und was passiert? Schreib mal ganz oben in die Datei:
PHP:
error_reporting(E_ALL);
Dann bekommst du schonmal alle Fehler angezeigt.
Es darf halt vor Header(...) keine Ausgabe erfolgen, sonst sieht das eigentlich i.O. aus.
Laut Spec sollte die URL für den Header-Redirect komplett sein, d.h.
PHP:
Header('http://www.deinedomain.de/pfad/zu/index.html');
 
Die Spezifikation schreibt absolute URLs vor. Zudem darf vor dem Aufruf von header() keine Ausgabe passieren (oder diese müsste gepuffert werden) und danach sollte Skript abgebrochen werden. (Zusätzlich kann auch noch der passende Statuscode gesendet werden.)
Also:
PHP:
header('Location: http://absolute.url.example/index.html', true, 303);
exit;
 
Der URL muss absolut sein und zudem darf vorher keine Ausgabe an den Browser erfolgen - siehe hierzu [phpf]header[/phpf]:

PHP:
header ("Location: http://domain.de/index.html");
 
so, als Fehlermeldung erhalte ich


Warning: Cannot modify header information - headers already sent by (output started at /home/www/web89/html/test/kontakt.php:8) in /home/www/web11/html/test/kontakt.php on line 32

Habe folgendes in das Script eingefügt

Code:
 header ('Location: http://www.meine-domain.de/test/index.html', true, 303);
 exit;

Kann da wer den Fehler entdecken?
 
In Zeile 8 beginnt bereits die Ausgabe. Das darf nicht sein, da dadurch der HTTP-Header nicht mehr verändert werden kann, da dieser direkt vor der Ausgabe an den Client gesendet wird.
 
habe es jetzt mal davor gesetzt und wenn ich auf absenden drücke bekomme ich die fehlermeldung das header bereits in Zeile 5 gesendet wird, in Zeile 5 steht aber nur das
<?php

und dann beginnt das script
 
Zurück