php email verzending
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
$name = $_POST["naam"];
$email = $_POST["Email"];
$achternaam = $_POST["achternaam"];
$straat = $_POST["straat"];
$gemeente = $_POST["gemeente"];
$postcode = $_POST["postcode"];
$naam_kindjes = $_POST["naam kindjes"];
$leeftijd = $_POST["leeftijd"];
$tijd = $_POST["tijd"];
$datum = $_POST["datum"];
$comment = $_POST["opmerking"];
$bron = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$address = $_SERVER["REMOTE_ADDR"];
//$name = 'danny';
//$email = '[email protected]';
//$comment = 'Ingevuld veld opmerking website';
//$bron = gethostbyaddr($_SERVER['REMOTE_ADDR']);
//$address = $_SERVER["REMOTE_ADDR"];
$to = "[email protected],[email protected]";
$subject = "aanvraag sint";
$headers .="To: Webmaster <[email protected]>\r\n";
$headers .=" from Website <[email protected]>\r\n";
$headers .= 'From: ' . $email . "\r\n";
$message = "De volgende gegevens zijn door de verzender $email ingevuld:
-----------------------------------------------------------------
Naam: $name
achternaam: $achternaam
Email: $email
straat: $straat
gemeente: $gemeente
postcode: $postcode
naam_kindjes: $naam_kindjes
leeftijd: $leeftijd
tijd: $tijd
datum: $datum
Opmerking: $comment
-----------------------------------------------------------------
Technische gegevens afzender:
Servernaam: $bron
Serveradres: $address
-----------------------------------------------------------------";
mail($to,$subject,$message, $headers);
header("Location: http://www.desinterklaas.be/bedankt.html");
?>
$name = $_POST["naam"];
$email = $_POST["Email"];
$achternaam = $_POST["achternaam"];
$straat = $_POST["straat"];
$gemeente = $_POST["gemeente"];
$postcode = $_POST["postcode"];
$naam_kindjes = $_POST["naam kindjes"];
$leeftijd = $_POST["leeftijd"];
$tijd = $_POST["tijd"];
$datum = $_POST["datum"];
$comment = $_POST["opmerking"];
$bron = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$address = $_SERVER["REMOTE_ADDR"];
//$name = 'danny';
//$email = '[email protected]';
//$comment = 'Ingevuld veld opmerking website';
//$bron = gethostbyaddr($_SERVER['REMOTE_ADDR']);
//$address = $_SERVER["REMOTE_ADDR"];
$to = "[email protected],[email protected]";
$subject = "aanvraag sint";
$headers .="To: Webmaster <[email protected]>\r\n";
$headers .=" from Website <[email protected]>\r\n";
$headers .= 'From: ' . $email . "\r\n";
$message = "De volgende gegevens zijn door de verzender $email ingevuld:
-----------------------------------------------------------------
Naam: $name
achternaam: $achternaam
Email: $email
straat: $straat
gemeente: $gemeente
postcode: $postcode
naam_kindjes: $naam_kindjes
leeftijd: $leeftijd
tijd: $tijd
datum: $datum
Opmerking: $comment
-----------------------------------------------------------------
Technische gegevens afzender:
Servernaam: $bron
Serveradres: $address
-----------------------------------------------------------------";
mail($to,$subject,$message, $headers);
header("Location: http://www.desinterklaas.be/bedankt.html");
?>
Een voorwaarde voor de header functie is dat er nog geen enkele output naar de client verstuurd is.
Hierbij wordt alles buiten de <?php en de ?> tags al als output gezien, ook een spatie of carriage return bijvoorbeeld. Daarnaast zijn er enkele php functies die output genereren zoals echo en print.
Drie voorbeelden waarbij het al fout gaat:
Code (php)
1
2
3
4
5
2
3
4
5
<?php // let op de carriage return
header("Location: http://www.desinterklaas.be/bedankt.html");
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
Gewijzigd op 01/11/2016 18:32:56 door Frank Nietbelangrijk
ik ben echt nieuw met php wat moet ik dan doen om dit goed werkende te maken kan u mij misschien hier stap bij stap helpen met vriendelijke groeten
Gewijzigd op 03/11/2016 00:13:34 door danny verheyen
Dus de oplossing is om geen HTML te tonen. Maar als je een location-header hebt heb je geen HTML-nodig, omdat je toch naar een andere pagina wordt doorgestuurd.
Zet er wel even een exit(); achteraan.
Gewijzigd op 03/11/2016 00:31:30 door - Ariën -
Als dat toevallig de headers-already-sent melding is, dan is daarin precies af te lezen wat er misgaat
hallo sorry voor late response maar het redirect probleem is opgelost nu bleek het een probleem te zijn om de dat de website op een windows server draaide maar nu draait hij op linux redireckt luckt perfect maar nu heb ik een ander probleem het verzenden van berichten gaat niet :(
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if(mail($to,$subject,$message, $headers)) {
header("Location: http://www.desinterklaas.be/bedankt.html");
exit();
} else {
echo "Er is een fout aan onze kans opgetreden.";
}
header("Location: http://www.desinterklaas.be/bedankt.html");
exit();
} else {
echo "Er is een fout aan onze kans opgetreden.";
}
Nog beter is het gebruik van de phpMailer bibliotheek. Die kan via Google en andere SMTP-servers mailen, en kent betere foutafhandeling dan deze matige PHP mail-functie.