Contact.php verstuurd niet naar email wel bevestiging
Expres even geen beveiligingen erin puur om alleen te kijken hoe alles werkt. Alleen doet hij het dus niet om een of andere reden.
Quote:
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
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
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]'; //
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$datum = date('d/m/Y H:i:s');
$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['email']) . "\n";
$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$inhoud_mail .= "===================================================\n\n";
$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
{
echo '<h1>Het contactformulier is verzonden</h1>
<p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
}
}
?>
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]'; //
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$datum = date('d/m/Y H:i:s');
$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['email']) . "\n";
$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$inhoud_mail .= "===================================================\n\n";
$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
{
echo '<h1>Het contactformulier is verzonden</h1>
<p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
}
}
?>
Dus je hebt kopie en plakken gedaan?
Ik heb een bestaande code gezocht op het internet en die ben ik nu aan het ontleden, zodat ik deze later kan opbouwen. Alleen zit er nu een probleem in.
Wat heb je aangepast buiten standaard je gevgevens?
Wat dingen weggehaald, zoals ik al aangaf onder andere de controle systemen en de anti flood.
Zo ver ik het weet werk dat script wel maar het is meer dan 4 jaar oud.
Raar maar waar ontvang ik geen emails...
Mail_ont zie ik alleen bovenaan staan en verder wordt het niet opgeroepen.
if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
Momentje
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
En waarvandaan mail je? Een lokale webserver (zoals XAMPP) of vanaf een webhosting?
Gewijzigd op 24/11/2014 19:11:18 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
Toevoeging op 24/11/2014 19:13:05:
Aar is deze contactformulier niet te oud want er staat 14 jaar geleden: http://www.phphulp.nl/php/script/data-verwerking/contact-formulier/12/contactformulierphp/1419/
Quote:
SCRIPT UPDATE 14 FEBRUARY 2011
Valt mee ;)
Ergens een recentere ter lering en vermaak?
Hij is kwalitatief wel goed hoor, ondanks hij pas 3 jaar oud is. Ik zou wel de headers van SanThe's PHPwiki nog even toevoegen, en een controle of mail() false kan zijn.
- Aar - op 24/11/2014 19:15:58:
Valt mee ;)
Quote:
SCRIPT UPDATE 14 FEBRUARY 2011
Valt mee ;)
Mooi, het wel leuk als wij phphulpers sommige bestaande script uptodate houden. :)
Ik zal dan nog headers van SanThe's PHPwiki inbouwen dan kunnen de andere ook gebruiken. Moet ik hiervoor een nieuwe topic openen?
Toevoeging op 24/11/2014 19:32:19:
Robbert hoe ver ben?
Gewijzigd op 24/11/2014 19:31:50 door johan de wit
Ik ga er vandaag of morgen mee aan de slag! Bedankt voor de tips, nu andere verplichtingen!
Oke succes, laat ons weten als het gelukt is en als je ook kan vermelden wat je hebt gedaan kunnen de bezoekers ook jou oplossing proberen.
=================================================== Ingevulde formulier robbert.com =================================================== Emailadres: Robbert Bericht: Robbert Question: Robberrt Verstuurd op 25/11/2014 14:17:54 via het IP adres 86.xx.xx.xx ===================================================
Quote:
$datum = date('d/m/Y H:i:s');
$email = "===================================================\n";
$email .= "Ingevulde formulier " . $_SERVER['HTTP_HOST'] . "\n";
$email .= "===================================================\n\n";
$email .= "Emailadres: " . htmlspecialchars($_POST['email']) . "\n";
$email .= "Bericht: " . htmlspecialchars($_POST['bericht']) . "\n";
$email .= "Question: " . htmlspecialchars($_POST['question']) . "\n\n";
$email .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$email .= "===================================================\n\n";
$email = "===================================================\n";
$email .= "Ingevulde formulier " . $_SERVER['HTTP_HOST'] . "\n";
$email .= "===================================================\n\n";
$email .= "Emailadres: " . htmlspecialchars($_POST['email']) . "\n";
$email .= "Bericht: " . htmlspecialchars($_POST['bericht']) . "\n";
$email .= "Question: " . htmlspecialchars($_POST['question']) . "\n\n";
$email .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$email .= "===================================================\n\n";
Waar gaat dit fout?
De code is nu alsvolgt
Quote:
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
50
51
52
53
54
55
56
57
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
50
51
52
53
54
55
56
57
<?php
session_start(); //Altijd bovenaan!
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST') //Controleert of op de knop is gedrukt!
{
// set datum
$datum = date('d/m/Y H:i:s');
$email = "===================================================\n";
$email .= "Ingevulde formulier " . $_SERVER['HTTP_HOST'] . "\n";
$email .= "===================================================\n\n";
$email .= "Emailadres: " . htmlspecialchars($_POST['email']) . "\n";
$email .= "Bericht: " . htmlspecialchars($_POST['bericht']) . "\n";
$email .= "Question: " . htmlspecialchars($_POST['question']) . "\n\n";
$email .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$email .= "===================================================\n\n";
//Headers
// Een korte benaming voor jouw website
$website_naam = 'Robbert';
// Jouw eigen geldige emailadres
$eigen_emailadres = '[email protected]';
// Een geldig emailadres voor errors
$error_emailadres = '[email protected]';
// De naam van de verzender
$naam_verzender = 'Afzender';
// Het geldige emailadres van de afzender
$email_verzender = '[email protected]';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
// De headers samenstellen
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
if (mail($eigen_emailadres, $_POST['onderwerp'], $email, $headers))
{
echo '<h1>Bedankt</h1>
<p>U ontvangt spoedig een reactie.</p>';
}
}
?>
session_start(); //Altijd bovenaan!
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST') //Controleert of op de knop is gedrukt!
{
// set datum
$datum = date('d/m/Y H:i:s');
$email = "===================================================\n";
$email .= "Ingevulde formulier " . $_SERVER['HTTP_HOST'] . "\n";
$email .= "===================================================\n\n";
$email .= "Emailadres: " . htmlspecialchars($_POST['email']) . "\n";
$email .= "Bericht: " . htmlspecialchars($_POST['bericht']) . "\n";
$email .= "Question: " . htmlspecialchars($_POST['question']) . "\n\n";
$email .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$email .= "===================================================\n\n";
//Headers
// Een korte benaming voor jouw website
$website_naam = 'Robbert';
// Jouw eigen geldige emailadres
$eigen_emailadres = '[email protected]';
// Een geldig emailadres voor errors
$error_emailadres = '[email protected]';
// De naam van de verzender
$naam_verzender = 'Afzender';
// Het geldige emailadres van de afzender
$email_verzender = '[email protected]';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
// De headers samenstellen
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
if (mail($eigen_emailadres, $_POST['onderwerp'], $email, $headers))
{
echo '<h1>Bedankt</h1>
<p>U ontvangt spoedig een reactie.</p>';
}
}
?>
Gewijzigd op 25/11/2014 20:24:43 door Robbert B
Als je het verstuurt als html moet je ook html code toepassen. <br> ipv \r en/of \n
Toevoeging op 26/11/2014 03:05:53:
Bij dubbel \n dus \n\n moet <br></br> zijn