Checkbox bericht ook naar jezelf zenden
Ik nikst van php, alleen wat ik zie kan in sommige gevallen aanpassen.
Nu ben ik voor een contactformulier waarvan ik de code via via van dit forum heb gekregen op zoek naar een tekst om een checkbox met keuze om het bericht dat je verstuurd ook naar jezelf kan sturen,ik zie door het bos de bomen niet meer en kom ten lange laatste hier om hulp vragen, als dat mag.....
Hieronder de code van het bewuste formulier.
Met dank bij voorbaat,
Jean-Pierre.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
/*******************************
* CONTACT FORMULIER *
* contactformulier.php *
* *
* Author: Miranda Verburg *
* Datum: 10 september 2010 *
* *
* Pas het e-mail adres aan *
* bij $mail_ontv en upload *
* het naar je webserver.. *
********************************/
// E-mailadres van de ontvanger
$mail_ontv = 'mijn naam'; // <<<----- voer jouw e-mailadres hier in!
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (empty($_POST['naam']))
$naam_fout = 1;
// straat controle
if (empty($_POST['straat']))
$straat_fout = 1;
// huisnr controle
if (empty($_POST['huisnr']))
$huisnr_fout = 1;
// gemeente controle
if (empty($_POST['gemeente']))
$gemeente_fout = 1;
// postc controle
if (empty($_POST['postc']))
$postc_fout = 1;
// telefoon controle
if (empty($_POST['telefoon']))
$telefoon_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
$email_fout = 1;
// antiflood controle
if (!empty($_SESSION['antiflood']))
{
$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
$tijd = time() - $_SESSION['antiflood'];
if($tijd < $seconde)
$antiflood = 1;
}
}
// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['straat']) || !empty($straat_fout) || empty($_POST['huisnr']) || !empty
($huisnr_fout) || empty($_POST['gemeente']) || !empty($gemeente_fout) || empty($_POST['postc']) || !empty($postc_fout) || empty($_POST['telefoon']) || !empty($telefoon_fout) || empty($_POST['mail']) || !empty
($email_fout) || empty($_POST['bericht']) || empty($_POST['onderwerp']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo "<span style=\"color: red;\">Uw naam is niet ingevuld.</span><p>";
elseif (!empty($straat_fout))
echo "<span style=\"color: red;\">Straatnaam is niet ingevuld.</span><p>";
elseif (!empty($huisnr_fout))
echo "<span style=\"color: red;\">Huisnummer is niet ingevuld.</span><p>";
elseif (!empty($gemeente_fout))
echo "<span style=\"color: red;\">Gemeente is niet ingevuld.</span><p>";
elseif (!empty($postc_fout))
echo "<span style=\"color: red;\">Postcode is niet ingevuld.</span><p>";
elseif (!empty($telefoon_fout))
echo "<span style=\"color: red;\">Uw telefoonnummer is niet ingevuld.</span><p>";
elseif (!empty($email_fout))
echo "<span style=\"color: red;\">Uw e-mailadres is niet juist.</span><p>";
elseif (!empty($antiflood))
echo '<p>U mag slechts één bericht per ' . $seconde . ' seconde versturen.</p>';
else
echo "<span style=\"color: red;\">Je bent het onderwerp of bericht vergeten in te vullen.</span><p>";
}
// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>
<p><label for="naam"><p> Verplicht in te vullen </label>(<font color="red">*</font>)<br /></p>
<label for="naam">Naam: </label> (<font color="red">*</font>)<br />
<input type="text" id="naam" name="naam" size="40" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br />
<label for="straat">Straatnaam: </label>(<font color="red">*</font>)<br />
<input type="text" id="straat" name="straat" size="40" value="' . (isset($_POST['straat']) ? htmlspecialchars($_POST['straat']) : '') . '" /><br />
<label for="huisnr">Huisnummer: </label>(<font color="red">*</font>)<br />
<input type="text" id="huisnr" name="huisnr" size="40" value="' . (isset($_POST['huisnr']) ? htmlspecialchars($_POST['huisnr']) : '') . '" /><br />
<label for="gemeente">Gemeente: </label>(<font color="red">*</font>)<br />
<input type="text" id="gemeente" name="gemeente" size="40" value="' . (isset($_POST['gemeente']) ? htmlspecialchars($_POST['gemeente']) : '') . '" /><br />
<label for="postc">Postcode: </label>(<font color="red">*</font>)<br />
<input type="text" id="postc" name="postc" size="40" value="' . (isset($_POST['postc']) ? htmlspecialchars($_POST['postc']) : '') . '" /><br />
<label for="telefoon">Telefoonnr: </label>(<font color="red">*</font>)<br />
<input type="text" id="telefoon" name="telefoon" size="40" value="' . (isset($_POST['telefoon']) ? htmlspecialchars($_POST['telefoon']) : '') . '" /><br />
<label for="mail">E-mailadres: </label>(<font color="red">*</font>)<br />
<input type="text" id="mail" name="mail" size="40" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br /><br />
<label for="onderwerp">Onderwerp: </label>(<font color="red">*</font>)<br />
<input type="text" id="onderwerp" name="onderwerp" size="40" value="' . (isset($_POST['onderwerp']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" /><br />
<label for="bericht">Uw bericht: </label>(<font color="red">*</font>)<br />
<textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><br /><br />
<input type="submit" STYLE="color: yellow; background-color: forestgreen;" value="Verzenden" name="submit">
</p>
</form>';
}
// versturen naar
else
{
// set datum
$datum = date('d/m/Y H:i:s');
$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Straatnaam: " . htmlspecialchars($_POST['straat']) . "\n";
$inhoud_mail .= "Huisnummer: " . htmlspecialchars($_POST['huisnr']) . "\n";
$inhoud_mail .= "Gemeente: " . htmlspecialchars($_POST['gemeente']) . "\n";
$inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postc']) . "\n";
$inhoud_mail .= "Telefoonnr: " . htmlspecialchars($_POST['telefoon']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
$inhoud_mail .= "Onderwerp: " . htmlspecialchars($_POST['onderwerp']) . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
$inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$inhoud_mail .= "===================================================\n\n";
// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
// ------
$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))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();
echo "<span style=\"color: green;\">'<h1>Het contactformulier is verzonden</h1>
<p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</span></p>";
}
else
{
echo "<span style=\"color: orangered;\">'<h1>Het contactformulier is niet verzonden</h1>
<p>Onze excuses. Het contactformulier kon niet verzonden worden.</span></p>";
}
}
?>
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
/*******************************
* CONTACT FORMULIER *
* contactformulier.php *
* *
* Author: Miranda Verburg *
* Datum: 10 september 2010 *
* *
* Pas het e-mail adres aan *
* bij $mail_ontv en upload *
* het naar je webserver.. *
********************************/
// E-mailadres van de ontvanger
$mail_ontv = 'mijn naam'; // <<<----- voer jouw e-mailadres hier in!
// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (empty($_POST['naam']))
$naam_fout = 1;
// straat controle
if (empty($_POST['straat']))
$straat_fout = 1;
// huisnr controle
if (empty($_POST['huisnr']))
$huisnr_fout = 1;
// gemeente controle
if (empty($_POST['gemeente']))
$gemeente_fout = 1;
// postc controle
if (empty($_POST['postc']))
$postc_fout = 1;
// telefoon controle
if (empty($_POST['telefoon']))
$telefoon_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
$email_fout = 1;
// antiflood controle
if (!empty($_SESSION['antiflood']))
{
$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
$tijd = time() - $_SESSION['antiflood'];
if($tijd < $seconde)
$antiflood = 1;
}
}
// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['straat']) || !empty($straat_fout) || empty($_POST['huisnr']) || !empty
($huisnr_fout) || empty($_POST['gemeente']) || !empty($gemeente_fout) || empty($_POST['postc']) || !empty($postc_fout) || empty($_POST['telefoon']) || !empty($telefoon_fout) || empty($_POST['mail']) || !empty
($email_fout) || empty($_POST['bericht']) || empty($_POST['onderwerp']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo "<span style=\"color: red;\">Uw naam is niet ingevuld.</span><p>";
elseif (!empty($straat_fout))
echo "<span style=\"color: red;\">Straatnaam is niet ingevuld.</span><p>";
elseif (!empty($huisnr_fout))
echo "<span style=\"color: red;\">Huisnummer is niet ingevuld.</span><p>";
elseif (!empty($gemeente_fout))
echo "<span style=\"color: red;\">Gemeente is niet ingevuld.</span><p>";
elseif (!empty($postc_fout))
echo "<span style=\"color: red;\">Postcode is niet ingevuld.</span><p>";
elseif (!empty($telefoon_fout))
echo "<span style=\"color: red;\">Uw telefoonnummer is niet ingevuld.</span><p>";
elseif (!empty($email_fout))
echo "<span style=\"color: red;\">Uw e-mailadres is niet juist.</span><p>";
elseif (!empty($antiflood))
echo '<p>U mag slechts één bericht per ' . $seconde . ' seconde versturen.</p>';
else
echo "<span style=\"color: red;\">Je bent het onderwerp of bericht vergeten in te vullen.</span><p>";
}
// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>
<p><label for="naam"><p> Verplicht in te vullen </label>(<font color="red">*</font>)<br /></p>
<label for="naam">Naam: </label> (<font color="red">*</font>)<br />
<input type="text" id="naam" name="naam" size="40" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br />
<label for="straat">Straatnaam: </label>(<font color="red">*</font>)<br />
<input type="text" id="straat" name="straat" size="40" value="' . (isset($_POST['straat']) ? htmlspecialchars($_POST['straat']) : '') . '" /><br />
<label for="huisnr">Huisnummer: </label>(<font color="red">*</font>)<br />
<input type="text" id="huisnr" name="huisnr" size="40" value="' . (isset($_POST['huisnr']) ? htmlspecialchars($_POST['huisnr']) : '') . '" /><br />
<label for="gemeente">Gemeente: </label>(<font color="red">*</font>)<br />
<input type="text" id="gemeente" name="gemeente" size="40" value="' . (isset($_POST['gemeente']) ? htmlspecialchars($_POST['gemeente']) : '') . '" /><br />
<label for="postc">Postcode: </label>(<font color="red">*</font>)<br />
<input type="text" id="postc" name="postc" size="40" value="' . (isset($_POST['postc']) ? htmlspecialchars($_POST['postc']) : '') . '" /><br />
<label for="telefoon">Telefoonnr: </label>(<font color="red">*</font>)<br />
<input type="text" id="telefoon" name="telefoon" size="40" value="' . (isset($_POST['telefoon']) ? htmlspecialchars($_POST['telefoon']) : '') . '" /><br />
<label for="mail">E-mailadres: </label>(<font color="red">*</font>)<br />
<input type="text" id="mail" name="mail" size="40" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br /><br />
<label for="onderwerp">Onderwerp: </label>(<font color="red">*</font>)<br />
<input type="text" id="onderwerp" name="onderwerp" size="40" value="' . (isset($_POST['onderwerp']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" /><br />
<label for="bericht">Uw bericht: </label>(<font color="red">*</font>)<br />
<textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><br /><br />
<input type="submit" STYLE="color: yellow; background-color: forestgreen;" value="Verzenden" name="submit">
</p>
</form>';
}
// versturen naar
else
{
// set datum
$datum = date('d/m/Y H:i:s');
$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Straatnaam: " . htmlspecialchars($_POST['straat']) . "\n";
$inhoud_mail .= "Huisnummer: " . htmlspecialchars($_POST['huisnr']) . "\n";
$inhoud_mail .= "Gemeente: " . htmlspecialchars($_POST['gemeente']) . "\n";
$inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postc']) . "\n";
$inhoud_mail .= "Telefoonnr: " . htmlspecialchars($_POST['telefoon']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
$inhoud_mail .= "Onderwerp: " . htmlspecialchars($_POST['onderwerp']) . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
$inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
$inhoud_mail .= "===================================================\n\n";
// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
// ------
$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))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();
echo "<span style=\"color: green;\">'<h1>Het contactformulier is verzonden</h1>
<p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</span></p>";
}
else
{
echo "<span style=\"color: orangered;\">'<h1>Het contactformulier is niet verzonden</h1>
<p>Onze excuses. Het contactformulier kon niet verzonden worden.</span></p>";
}
}
?>
Toevoeging op 11/06/2013 17:18:42:
Na bijna 24 wachten op enerlei hulp hou ik er wel een wrang gevoel aan over, heb ik iets verkeerd gedaan, heb ik te veel gevraagd, ben ik niet slim genoeg.....
Ik begrijp goed dat je de mogelijkheid wilt creëren voor gebruikers dat ze een kopie van de email ontvangen.
Dit kan je doen door in je html formulier <input type="checkbox"... etc. een extra checkbox toe te voegen voor 'kopie verzenden'.
Vervolgens kan je ervoor kiezen om de mail functie op regel 156 2x uit te voeren waarbij de 2e keer voor de kopie is als deze geselecteerd is. Is niet een hele nette oplossing, maar ik denk dat dat er nu even niet toe doet.
Daarnaast een praktische tip:
Gebruik de goed email headers (http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders)
Voorbeeld van het bovenstaande:
Een checkbox voor de kopie en een veld voor het emailadres toevoegen in je formulier:
Code (php)
1
2
3
2
3
<input type="checkbox" name="kopie" value="kopie" />
<input type="text" name="emailadres" />
<input type="text" name="emailadres" />
Vervolgens een stukje php om te controleren of de checkbox geselecteerd is:
Code (php)
Als je dit in je code verwerkt kom je al een heel eind.
Gewijzigd op 12/06/2013 13:23:24 door Bas IJzelendoorn