Captcha in PHP Formulier
Ik probeer al weken lang voor elkaar te krijgen om een Captcha code in mijn contact formulier toe te voegen. Dit omdat ik al maanden last heb van SPAM via het online formulier. Ik wordt er gek van en soms wel een stuk of 10 berichten per dag.
Via google heb ik al heel wat scripts gevonden maar het probleem is dat ik het niet krijg toegepast in mijn al bestaande script. Ik wil mijn eigen contact formulier namelijk gewoon behouden. Al op verschillende manieren heb ik pogingen gedaan maar steeds slaat het hele script op hol en werkt niks meer. Via deze website heb ik een goede uitleg van een script gevonden: http://www.joriso.nl/verhaaltjes-webdevelopment-captcha-2.html
Echter ook hiermee lukt het me niet de captcha toe te voegen. Zij geven namelijk dit stukje script aan om toe te voegen in het contact formulier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
<title>html formulier met php captcha</title>
</head>
<body>
<form method="post" action="write.php">
<input class="input" type="text" name="norobot">
<img src="captcha.php"><input type="submit" value="Toevoegen">
</form>
</body>
</html>
<head>
<title>html formulier met php captcha</title>
</head>
<body>
<form method="post" action="write.php">
<input class="input" type="text" name="norobot">
<img src="captcha.php"><input type="submit" value="Toevoegen">
</form>
</body>
</html>
Mijn contact formulier ziet er tussen de <form> tags zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
Wie o wie kan mij op weg helpen om beide codes bij elkaar samen te voegen? ALvast ontzettend bedankt!!
Groeten,
Justin
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
Maar hier zit de truc niet, die zit in het bestand dat de mail wegstuurt
http://www.kermisadviesgroep.nl/contact/contact2.php.
Ik had gehoopt dat het probleem in dit stukje code zat. De complete code wordt namelijk zo'n waslijst. Echter als jullie me hiermee kunnen helpen zou dat geweldig zijn. Dit is het hele script van het contact formulier zelf (buiten de write.php en captcha.php om).
Ook hiermee gaat het compleet fout, zie Ik had gehoopt dat het probleem in dit stukje code zat. De complete code wordt namelijk zo'n waslijst. Echter als jullie me hiermee kunnen helpen zou dat geweldig zijn. Dit is het hele script van het contact formulier zelf (buiten de write.php en captcha.php om).
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
<?
ob_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$site = "http://www.kermisadviesgroep.nl/home.htm"; // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$wm_naam = "Kermis Advies Groep"; // Webmaster naam
$wm_email = "[email protected]"; // Webmaster E-mail
$Anti_Spam = "10"; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$html = TRUE; // Een HTML email
// Hierna hoef je niks meer te veranderen!
$naam = $_POST['naam'];
$email = $_POST['email'];
$functie = $_POST['functie'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$bericht_wrap = wordwrap ($bericht, 90, "\n", 1);
// IP van de verstuurder
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
} elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {
$ip = getenv($_SERVER['HTTP_CLIENT_IP']);
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$host = gethostbyaddr($ip); // Host van verstuurder
if($html) {
// Headers
$headers = "From: \"Contact Formulier KermisAdviesGroep.nl\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n";
// Bericht
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$message .= "<HTML><HEAD>";
$message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">";
$message .= "</HEAD><BODY>";
$message .= "<BR> ";
$message .= "<TABLE>";
$message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>";
$message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>";
$message .= "<tr><td>Functie:</td><td>".$functie."</td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>";
$message .= "<tr><td colspan=\"2\"> </td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>";
$message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>";
$message .= "<tr><td>Host:</td><td>".$host."</td></tr>";
$message .= "</TABLE></BODY></HTML>";
}
else {
// Headers
$headers = "From: \"Contact Formulier KermisAdviesGroep.nl\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Functie: ".$functie." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$ip." \n ";
$message .= "Host: ".$host." \n ";
}
// Mail Checker
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;
return $valid;
}
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(!isset($_COOKIE['mailformulier']))
{
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
$fout = "";
if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))
{
$fout .= "U bent vergeten uw naam in te vullen! <BR>";
unset($naam);
$fout_vakje_naam = "input_fout";
$fout_text_naam = "text_fout";
}
if((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email)))
{
$fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
elseif(checkmail($email) == 0)
{
$fout .= "Vul een correct e-mail adres in! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
{
$fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
unset($onderwerp);
$fout_vakje_onderwerp = "input_fout";
$fout_text_onderwerp = "text_fout";
}
if(empty($bericht))
{
$fout .= "U bent vergeten een bericht in te vullen! <BR";
unset($bericht);
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
elseif(strlen($bericht) < 6)
{
$fout .= "Uw bericht is tekort! <BR>";
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
mail($wm_email,$onderwerp,$message,$headers);
// Bericht als mail succesvol is verzonden
echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";
echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";
echo "Wij streven ernaar zo snel mogelijk reactie te geven.<BR><BR>";
echo "Met vriendelijke groeten,<BR>";
echo "<B>".$wm_naam."</B>";
// cookie zetten tegen spam
setcookie("mailformulier",1,time()+($Anti_Spam*60));
// formulier wordt niet weer getoond
$Formulier = TRUE;
header("refresh:6;url=".$site."");
}
}
}
else {
$Formulier = FALSE;
echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";
echo "<center><h2> Spam Beveiliging </h2><br />";
echo "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>";
header("refresh:3;url=".$site."");
}
if(!isset($Formulier))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
</body>
</html>
<?
}
?>
ob_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$site = "http://www.kermisadviesgroep.nl/home.htm"; // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$wm_naam = "Kermis Advies Groep"; // Webmaster naam
$wm_email = "[email protected]"; // Webmaster E-mail
$Anti_Spam = "10"; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$html = TRUE; // Een HTML email
// Hierna hoef je niks meer te veranderen!
$naam = $_POST['naam'];
$email = $_POST['email'];
$functie = $_POST['functie'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$bericht_wrap = wordwrap ($bericht, 90, "\n", 1);
// IP van de verstuurder
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
} elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {
$ip = getenv($_SERVER['HTTP_CLIENT_IP']);
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$host = gethostbyaddr($ip); // Host van verstuurder
if($html) {
// Headers
$headers = "From: \"Contact Formulier KermisAdviesGroep.nl\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n";
// Bericht
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$message .= "<HTML><HEAD>";
$message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">";
$message .= "</HEAD><BODY>";
$message .= "<BR> ";
$message .= "<TABLE>";
$message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>";
$message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>";
$message .= "<tr><td>Functie:</td><td>".$functie."</td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>";
$message .= "<tr><td colspan=\"2\"> </td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>";
$message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>";
$message .= "<tr><td>Host:</td><td>".$host."</td></tr>";
$message .= "</TABLE></BODY></HTML>";
}
else {
// Headers
$headers = "From: \"Contact Formulier KermisAdviesGroep.nl\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Functie: ".$functie." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$ip." \n ";
$message .= "Host: ".$host." \n ";
}
// Mail Checker
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;
return $valid;
}
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(!isset($_COOKIE['mailformulier']))
{
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
$fout = "";
if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))
{
$fout .= "U bent vergeten uw naam in te vullen! <BR>";
unset($naam);
$fout_vakje_naam = "input_fout";
$fout_text_naam = "text_fout";
}
if((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email)))
{
$fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
elseif(checkmail($email) == 0)
{
$fout .= "Vul een correct e-mail adres in! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
{
$fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
unset($onderwerp);
$fout_vakje_onderwerp = "input_fout";
$fout_text_onderwerp = "text_fout";
}
if(empty($bericht))
{
$fout .= "U bent vergeten een bericht in te vullen! <BR";
unset($bericht);
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
elseif(strlen($bericht) < 6)
{
$fout .= "Uw bericht is tekort! <BR>";
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
mail($wm_email,$onderwerp,$message,$headers);
// Bericht als mail succesvol is verzonden
echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";
echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";
echo "Wij streven ernaar zo snel mogelijk reactie te geven.<BR><BR>";
echo "Met vriendelijke groeten,<BR>";
echo "<B>".$wm_naam."</B>";
// cookie zetten tegen spam
setcookie("mailformulier",1,time()+($Anti_Spam*60));
// formulier wordt niet weer getoond
$Formulier = TRUE;
header("refresh:6;url=".$site."");
}
}
}
else {
$Formulier = FALSE;
echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";
echo "<center><h2> Spam Beveiliging </h2><br />";
echo "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>";
header("refresh:3;url=".$site."");
}
if(!isset($Formulier))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
</body>
</html>
<?
}
?>
Bedankt voor de hulp in ieder geval, ik ga het script op een tweede hosting proberen!!
Offtopic: Mooi scriptje ;)
Het contact script werkt nu weer, inclusief captcha. Toch werkt de Captcha zelf niet, ook als ik namelijk een foute code overtik wordt de mail gewoon verzonden. Ziet iemand wat er dan nog fout gaat nu? Alvast bedankt!!
Want je controleerd nergens of de code overeen komt met de code die is aangemaakt.
Welke CAPTCHA gebruik je? Word de code in een sessie?
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
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
<?php
// het random nr. aanmaken en gecodeerd opslaan in php sessie
session_start();
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font
$im = imagecreatetruecolor(100, 38);
// Kleurenbepaling
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts
imagefilledrectangle($im, 0, 0, 200, 35, $black);
// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';
// schaduw toevoegen
imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);
// randomnr. toevoegen
imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);
// voorkomen dat afbeelding ge-cached wordt
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// plaatje verzenden naar browser
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
// het random nr. aanmaken en gecodeerd opslaan in php sessie
session_start();
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font
$im = imagecreatetruecolor(100, 38);
// Kleurenbepaling
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts
imagefilledrectangle($im, 0, 0, 200, 35, $black);
// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';
// schaduw toevoegen
imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);
// randomnr. toevoegen
imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);
// voorkomen dat afbeelding ge-cached wordt
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// plaatje verzenden naar browser
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$fout .= "Uw bericht is tekort! <BR>";
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
vervangen door dit:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
if(md5($_POST['norobot']) != $_SESSION['randomnr2'])
{
$fout .= "Er is geen correcte code ingevoerd.";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
{
$fout .= "Er is geen correcte code ingevoerd.";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
?
Nu is het zelfs zo dat wanneer je de code GOED overtypt er in beeld komt dat het fout is, en als je het FOUT overtypt wordt de mail gewoon verzonden!
Onderstaande code heb ik nu als contact.php, voor de duidelijkheid nog even:
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<?
session_start();
ob_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$site = "http://www.kermisadviesgroep.nl/home.htm"; // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$wm_naam = "KAG"; // Webmaster naam
$wm_email = "[email protected]"; // Webmaster E-mail
$Anti_Spam = "0"; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$html = TRUE; // Een HTML email
// Hierna hoef je niks meer te veranderen!
$naam = $_POST['naam'];
$email = $_POST['email'];
$functie = $_POST['functie'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$norobot = $_POST['norobot'];
$bericht_wrap = wordwrap ($bericht, 90, "\n", 1);
// IP van de verstuurder
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
} elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {
$ip = getenv($_SERVER['HTTP_CLIENT_IP']);
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$host = gethostbyaddr($ip); // Host van verstuurder
if($html) {
// Headers
$headers = "From: \"Contact Formulier KAG\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n";
// Bericht
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$message .= "<HTML><HEAD>";
$message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">";
$message .= "</HEAD><BODY>";
$message .= "<BR> ";
$message .= "<TABLE>";
$message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>";
$message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>";
$message .= "<tr><td>Functie:</td><td>".$functie."</td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>";
$message .= "<tr><td colspan=\"2\"> </td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>";
$message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>";
$message .= "<tr><td>Host:</td><td>".$host."</td></tr>";
$message .= "</TABLE></BODY></HTML>";
}
else {
// Headers
$headers = "From: \"Contact Formulier KAG\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Functie: ".$functie." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$ip." \n ";
$message .= "Host: ".$host." \n ";
}
// Mail Checker
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;
return $valid;
}
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(!isset($_COOKIE['mailformulier']))
{
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
$fout = "";
if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))
{
$fout .= "U bent vergeten uw naam in te vullen! <BR>";
unset($naam);
$fout_vakje_naam = "input_fout";
$fout_text_naam = "text_fout";
}
if (md5($norobot) == $_SESSION['randomnr2']) {
$fout .= "U heeft de code incorrect over getypt! <BR>";
unset($norobot);
$fout_vakje_norobot = "input_fout";
$fout_text_norobot = "text_fout";
} elseif((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email)))
{
$fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
elseif(checkmail($email) == 0)
{
$fout .= "Vul een correct e-mail adres in! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
{
$fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
unset($onderwerp);
$fout_vakje_onderwerp = "input_fout";
$fout_text_onderwerp = "text_fout";
}
if(empty($bericht))
{
$fout .= "U bent vergeten een bericht in te vullen! <BR";
unset($bericht);
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
elseif(strlen($bericht) < 6)
{
$fout .= "Uw bericht is tekort! <BR>";
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
mail($wm_email,$onderwerp,$message,$headers);
// Bericht als mail succesvol is verzonden
echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";
echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";
echo "Wij streven ernaar zo snel mogelijk reactie te geven.<BR><BR>";
echo "Met vriendelijke groeten,<BR>";
echo "<B>".$wm_naam."</B>";
// cookie zetten tegen spam
setcookie("mailformulier",1,time()+($Anti_Spam*60));
// formulier wordt niet weer getoond
$Formulier = TRUE;
header("refresh:6;url=".$site."");
}
}
}
else {
$Formulier = FALSE;
echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";
echo "<center><h2> Spam Beveiliging </h2><br />";
echo "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>";
header("refresh:3;url=".$site."");
}
if(!isset($Formulier))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
</body>
</html>
<?
}
?>
session_start();
ob_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$site = "http://www.kermisadviesgroep.nl/home.htm"; // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$wm_naam = "KAG"; // Webmaster naam
$wm_email = "[email protected]"; // Webmaster E-mail
$Anti_Spam = "0"; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$html = TRUE; // Een HTML email
// Hierna hoef je niks meer te veranderen!
$naam = $_POST['naam'];
$email = $_POST['email'];
$functie = $_POST['functie'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$norobot = $_POST['norobot'];
$bericht_wrap = wordwrap ($bericht, 90, "\n", 1);
// IP van de verstuurder
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
} elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {
$ip = getenv($_SERVER['HTTP_CLIENT_IP']);
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$host = gethostbyaddr($ip); // Host van verstuurder
if($html) {
// Headers
$headers = "From: \"Contact Formulier KAG\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n";
// Bericht
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
$message .= "<HTML><HEAD>";
$message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">";
$message .= "</HEAD><BODY>";
$message .= "<BR> ";
$message .= "<TABLE>";
$message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>";
$message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>";
$message .= "<tr><td>Functie:</td><td>".$functie."</td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>";
$message .= "<tr><td colspan=\"2\"> </td></tr>";
$message .= "<BR> ";
$message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>";
$message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>";
$message .= "<tr><td>Host:</td><td>".$host."</td></tr>";
$message .= "</TABLE></BODY></HTML>";
}
else {
// Headers
$headers = "From: \"Contact Formulier KAG\" <".$wm_email.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Functie: ".$functie." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$ip." \n ";
$message .= "Host: ".$host." \n ";
}
// Mail Checker
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);
if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;
return $valid;
}
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(!isset($_COOKIE['mailformulier']))
{
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
$fout = "";
if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))
{
$fout .= "U bent vergeten uw naam in te vullen! <BR>";
unset($naam);
$fout_vakje_naam = "input_fout";
$fout_text_naam = "text_fout";
}
if (md5($norobot) == $_SESSION['randomnr2']) {
$fout .= "U heeft de code incorrect over getypt! <BR>";
unset($norobot);
$fout_vakje_norobot = "input_fout";
$fout_text_norobot = "text_fout";
} elseif((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email)))
{
$fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
elseif(checkmail($email) == 0)
{
$fout .= "Vul een correct e-mail adres in! <BR>";
unset($email);
$fout_vakje_email = "input_fout";
$fout_text_email = "text_fout";
}
if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
{
$fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
unset($onderwerp);
$fout_vakje_onderwerp = "input_fout";
$fout_text_onderwerp = "text_fout";
}
if(empty($bericht))
{
$fout .= "U bent vergeten een bericht in te vullen! <BR";
unset($bericht);
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
elseif(strlen($bericht) < 6)
{
$fout .= "Uw bericht is tekort! <BR>";
$fout_vakje_bericht = "input_fout";
$fout_text_bericht = "text_fout";
}
if(!empty($fout))
{
echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
else
{
mail($wm_email,$onderwerp,$message,$headers);
// Bericht als mail succesvol is verzonden
echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";
echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";
echo "Wij streven ernaar zo snel mogelijk reactie te geven.<BR><BR>";
echo "Met vriendelijke groeten,<BR>";
echo "<B>".$wm_naam."</B>";
// cookie zetten tegen spam
setcookie("mailformulier",1,time()+($Anti_Spam*60));
// formulier wordt niet weer getoond
$Formulier = TRUE;
header("refresh:6;url=".$site."");
}
}
}
else {
$Formulier = FALSE;
echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";
echo "<center><h2> Spam Beveiliging </h2><br />";
echo "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>";
header("refresh:3;url=".$site."");
}
if(!isset($Formulier))
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0" width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>
</body>
</html>
<?
}
?>
en de Captcha:
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
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
<?php
// het random nr. aanmaken en gecodeerd opslaan in php sessie
session_start();
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font
$im = imagecreatetruecolor(100, 38);
// Kleurenbepaling
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts
imagefilledrectangle($im, 0, 0, 200, 35, $black);
// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';
// schaduw toevoegen
imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);
// randomnr. toevoegen
imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);
// voorkomen dat afbeelding ge-cached wordt
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// plaatje verzenden naar browser
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
// het random nr. aanmaken en gecodeerd opslaan in php sessie
session_start();
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font
$im = imagecreatetruecolor(100, 38);
// Kleurenbepaling
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts
imagefilledrectangle($im, 0, 0, 200, 35, $black);
// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';
// schaduw toevoegen
imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);
// randomnr. toevoegen
imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);
// voorkomen dat afbeelding ge-cached wordt
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// plaatje verzenden naar browser
header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if (md5($norobot) != $_SESSION['randomnr2']) {
$fout .= "U heeft de code incorrect over getypt! <BR>";
unset($norobot);
$fout_vakje_norobot = "input_fout";
$fout_text_norobot = "text_fout";
}
$fout .= "U heeft de code incorrect over getypt! <BR>";
unset($norobot);
$fout_vakje_norobot = "input_fout";
$fout_text_norobot = "text_fout";
}
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot