Na formulier verzenden terug naar website
Ik heb het volgende probleem:
Heb een eenvouding formulier gemaakt, en dit formulier wordt behandeld in een php file...:
<form method="post" action="FormulierAfhandeling.php">
Formulierblabla
</form>
In het bestand formulierafhandeling.php staat het volgende script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
$VoorLetters = $_POST['VoorLetters'];
$AchterNaam = $_POST['AchterNaam'];
$StraatNaam = $_POST['StraatNaam'];
$HuisNummer = $_POST['HuisNummer'];
$PostCode = $_POST['PostCode'];
$TelefoonNummer = $_POST['TelefoonNummer'];
$EmailAdres = $_POST['EmailAdres'];
$ReserveringsData = $_POST['ReserveringsData'];
$OpMerkingen = $_POST['OpMerkingen'];
$varri = "thankyou.html";
$formsent = mail('[email protected]',
'Gegevens afkomstig van reserveren.html',
"Naam: $VoorLetters $AchterNaam\r\n
Emailadres: $EmailAdres
Straatnaam: $StraatNaam
Huisnr: $HuisNummer
Postcode: $PostCode
Telefoonnummer: $TelefoonNummer
Gewenste reserveringsdata: $ReserveringsData
Opmerkingen: $OpMerkingen",
"From: $EmailAdres\r\nBounce-to: [email protected]");
if ($formsent) {echo header('Location: http://www.gasthausemlade.com/thankyou.html');
exit();
}else{
// Als het verzenden niet is gelukt, meld dat
$aErrors['fout'] = 'Helaas, het bericht kon niet worden verzonden. Probeer het later nog eens.';
}
?>
$VoorLetters = $_POST['VoorLetters'];
$AchterNaam = $_POST['AchterNaam'];
$StraatNaam = $_POST['StraatNaam'];
$HuisNummer = $_POST['HuisNummer'];
$PostCode = $_POST['PostCode'];
$TelefoonNummer = $_POST['TelefoonNummer'];
$EmailAdres = $_POST['EmailAdres'];
$ReserveringsData = $_POST['ReserveringsData'];
$OpMerkingen = $_POST['OpMerkingen'];
$varri = "thankyou.html";
$formsent = mail('[email protected]',
'Gegevens afkomstig van reserveren.html',
"Naam: $VoorLetters $AchterNaam\r\n
Emailadres: $EmailAdres
Straatnaam: $StraatNaam
Huisnr: $HuisNummer
Postcode: $PostCode
Telefoonnummer: $TelefoonNummer
Gewenste reserveringsdata: $ReserveringsData
Opmerkingen: $OpMerkingen",
"From: $EmailAdres\r\nBounce-to: [email protected]");
if ($formsent) {echo header('Location: http://www.gasthausemlade.com/thankyou.html');
exit();
}else{
// Als het verzenden niet is gelukt, meld dat
$aErrors['fout'] = 'Helaas, het bericht kon niet worden verzonden. Probeer het later nog eens.';
}
?>
Nou wil ik dat na het gedeelte 'if ($formsent)' dat hij daarna de bezoeker, na het klikken op verzenden, doorstuurt naar de pagina thankyou.html, maar krijg de volgende foutmelding:
Warning: Cannot modify header information - headers already sent by (output started at /home/p19165/domains/gasthausemlade.com/public_html/FormulierAfhandeling.php:9) in /home/p19165/domains/gasthausemlade.com/public_html/FormulierAfhandeling.php on line 33
HELP!, heb hier en daar al gezocht, maar kom er niet uit...
En je hebt op regel 33 de header functie staan. Dat mag niet, er mag geen output zijn voor het aanroepen van de header.
Moet je de echo niet weglaten op regel 26?
Je header echoën is inderdaad geen beste manier om het werkende te krijgen.
Juist ja, dan word je dus niet doorgelinkt ;)
Gebruik daarom altijd een meta refresh.
Zie hier:
http://www.mijnhomepage.nl/htmlcursus/redirect.php
Dat werkt met bijna alle browsers.
Veel succes,
Lars
- S Prince
- Lars Groot
zijn omslachtig en overbodig, indien je de header('Location: ') op de juiste manier implementeerd
Het zou natuurlijk wel handig zijn moest Noppes Homeland, de juiste implementatie weergeven...
Dat is al twee keer eerder gemeld: je moet header() niet echoën, het is een op zichzelf staande functie...
Lars,
Javascript zal bij de meeste computers wel aanstaan, vele drukbezochte websites gebruiken tenslotte toch ook ajax wat gebaseerd is op javascript...
Groetjes
S Prince op 24/07/2010 13:18:45:
Is het ook geen probleem als er al html gebruikt is voor de php code?
Ja, dat is wel een probleem. In dat geval zal je header() een foutmelding geven.
Maar dat betekent niet dat het gebruik van header() de fout is, maar dat er ergens anders een probleem zit. De opbouw van het script klopt dan niet aangezien je PHP code altijd uit wilt voeren voordat je ook maar enige output naar de browser verstuurt...