banlist
ik ben bezig met een gastenboek. Dat lukt mij aardig heb alles al opgezet en werkt zie http://www.weesenbeek.nl/gastenboek/index.php?
Nu wil ik aan dit gastenboek een banlist koppelen die uit de database gehaald kan worden. Daar sla ik alle email adressen in op die geen toegang meer mogen krijgen. maar ik weet niet goed hoe ik dit kan doen.
Ik zat zelf eraan te om dit met een scriptje te maken dat controleerd of een email adres op de banlist staat. zo ja dan gaat hij naar een pagina zo nee kunnen ze het bericht posten.
volgens mij kan je dit doen met if else maar ik weet niet hoe ik het scriptje moet maken dat deze email adressen zoekt in de database. dat kan ik nog niet. Ik ben al aan het knutselen en het lukt al aardig.
En is het mogelijk om automatisch een record uit de database te halen als een bepaalde datum is verstreken die is opgegeven. Dus iemand kan tot 31/12 niet meer posten als het 1 jan is weer wel en dit record is dan verwijderd. heeft iemand hier iets voor.??
alvast bedankt allemaal
Gewijzigd op 01/01/1970 01:00:00 door Willem van weesenbeek
Hier een klein voorbeeldje over hoe je mensen banned. Het is een simpel 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
<?php
function getip()
{
if(@$_SERVER['HTTP_X_FORWARDED_FOR'])
{
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(@$_SERVER['HTTP_CLIENT_IP'])
{
return $_SERVER['HTTP_CLIENT_IP'];
}
else
{
return $_SERVER['REMOTE_ADDR'];
}
}
$ipadres = getip();
//Maak connectie met je database.
$query = mysql_query("SELECT * FROM <tabelnaam> WHERE <kolomnaam voor ipadres> = '".$ipadres."' LIMIT 1");
if(mysql_num_rows($query) == '1')
{
die("U bent gebanned van dit gastenboek");
}
else
{
//hier gastenboek e.d. laten zien :)
}
?>
function getip()
{
if(@$_SERVER['HTTP_X_FORWARDED_FOR'])
{
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(@$_SERVER['HTTP_CLIENT_IP'])
{
return $_SERVER['HTTP_CLIENT_IP'];
}
else
{
return $_SERVER['REMOTE_ADDR'];
}
}
$ipadres = getip();
//Maak connectie met je database.
$query = mysql_query("SELECT * FROM <tabelnaam> WHERE <kolomnaam voor ipadres> = '".$ipadres."' LIMIT 1");
if(mysql_num_rows($query) == '1')
{
die("U bent gebanned van dit gastenboek");
}
else
{
//hier gastenboek e.d. laten zien :)
}
?>
Gewijzigd op 01/01/1970 01:00:00 door W W
Pepijn schreef op 20.12.2007 00:39:
Ik zou het ipadres bannen ipv email adres. Ipadres kun je zo opvragen met de volgende code:
Alleen kan je een ipadres even simpel als een email adres veranderen.
ip is ook wel mogelijk en beter ja klopt niet bij stilgestaan. getip kan je altijd opvragen dus ook in een form als hidden
Jeej schreef op 20.12.2007 00:43:
Alleen kan je een ipadres even simpel als een email adres veranderen.
Pepijn schreef op 20.12.2007 00:39:
Ik zou het ipadres bannen ipv email adres. Ipadres kun je zo opvragen met de volgende code:
Alleen kan je een ipadres even simpel als een email adres veranderen.
Ok, explain please. En bij email adressen kun je alles opgeven zonder dat je een soort van "activatie-mail" krijgt. Hierdoor kun je blijven spammen.
Pepijn schreef op 20.12.2007 00:49:
Ok, explain please. En bij email adressen kun je alles opgeven zonder dat je een soort van "activatie-mail" krijgt. Hierdoor kun je blijven spammen.
Ooit gehoort van proxy? En er bestaan duizende proxy's. Weetje dat spambots eigenlijk een soort van proxy's zijn? Een spambot-netwerk is een netwerk vol pc die hetzelfde bericht overal neerkalkt voor 1 persoon oid. Die persoon gebruikt in feite proxy's....
Als je spam weg wilt houden dan moet je naar mijn mening hetvolgende doen:
- Een formuliertje, wel met emailadres field
- Plugins draaien als http://akismet.com/ en http://www.bad-behavior.ioerror.us/
- Toestemmen voordat een berichtje word geplaatst. (oftewel, nog reviewen.)
- Als het bericht spam is, dan niet toestaan, en de gegevens in een banlist proppen.
True, ik snap ook wel dat ze via proxy's toch proberen te spammen. Maar we hebben het hier over bannen, geen spam! Hoe zal jij iemand bannen dan? wat zou jij opslaan?
Pepijn schreef op 20.12.2007 01:00:
True, ik snap ook wel dat ze via proxy's toch proberen te spammen. Maar we hebben het hier over bannen, geen spam! Hoe zal jij iemand bannen dan? wat zou jij opslaan?
Ik heb al weet ik hoeveel ban vragen gezien. Meestal gaat dit om spam. Maar lees mijn vorige bericht, daarin staat het antwoord op je vraag. Tevens kan je op die manier mensen ook bannen, gewoon het bericht niet meer doorlaten.
ik zou beginnen toch met een ip adres maar als hackers en spammers zie hierboven meerdere ip's hebben dan werkt het redelijk. misschien om spam tegen te gaan met een random nummer wat ingevoerd moet worden of die beveiliging met een plaatje en nummer. kom niet zo snel op de naam. maar een email adres vind ik persoonsgebonden en is wel snel over te nemen ff googelen en je hebt een email adres. maar als je beide doet is het onmogelijk dus een ip en een mail adres om nog te posten. lijkt mij het knutsel werkje waar ik mee bezig was lukte niet.
willem schreef op 20.12.2007 01:07:
ik zou beginnen toch met een ip adres maar als hackers en spammers zie hierboven meerdere ip's hebben dan werkt het redelijk. misschien om spam tegen te gaan met een random nummer wat ingevoerd moet worden of die beveiliging met een plaatje en nummer. kom niet zo snel op de naam. maar een email adres vind ik persoonsgebonden en is wel snel over te nemen ff googelen en je hebt een email adres. maar als je beide doet is het onmogelijk dus een ip en een mail adres om nog te posten. lijkt mij het knutsel werkje waar ik mee bezig was lukte niet.
Kijk even naar het scriptje wat ik geplaats heb. Ik denk dat dat een goedde start is voor je ban-systeem. Je kunt het later verder uitbreiden. Tegen bots kun je ook andere beveiligingen maken. zoals anti-flood, capatch en hidden inputs. (dit zijn slechts voorbeelden).
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
<?php virtual('/gastenboek/Connections/gastenboek.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_gastenboek, $gastenboek);
$query_banlist = "SELECT banlist FROM banlist ORDER BY banlist ASC";
$banlist = mysql_query($query_banlist, $gastenboek) or die(mysql_error());
$row_banlist = mysql_fetch_assoc($banlist);
$totalRows_banlist = mysql_num_rows($banlist);
######################################################
# #
# Forms To Go 3.2.1 #
# http://www.bebosoft.com/ #
# #
######################################################
error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('track_errors', true);
#----------
# Filter by IP Address
function ipaddress_check($ClientIP)
{
$bannedips[] = '$row_banlist['banlist']';
foreach ($bannedips as $ip_key => $ip_value) {
if ($ip_value == $ClientIP) {
header('Location: http://www.weesenbeek.nl/gastenboek/html/sancties/banned.php');
exit;
}
}
}
function DoStripSlashes($FieldValue)
{
if ( get_magic_quotes_gpc() ) {
if (is_array($FieldValue) ) {
return array_map('DoStripSlashes', $FieldValue);
} else {
return stripslashes($FieldValue);
}
} else {
return $FieldValue;
}
}
#----------
# FilterCChars:
function FilterCChars($TheString)
{
return preg_replace('/[\x00-\x1F]/', '', $TheString);
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ClientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ClientIP = $_SERVER['REMOTE_ADDR'];
}
ipaddress_check($ClientIP);
$FTGdate = DoStripSlashes( $_REQUEST['date'] );
$FTGVoornaam = DoStripSlashes( $_REQUEST['Voornaam'] );
$FTGAchternaam = DoStripSlashes( $_REQUEST['Achternaam'] );
$FTGPostcode = DoStripSlashes( $_REQUEST['Postcode'] );
$FTGPlaats = DoStripSlashes( $_REQUEST['Plaats'] );
$FTGEmailadres = DoStripSlashes( $_REQUEST['Emailadres'] );
$FTGbericht = DoStripSlashes( $_REQUEST['bericht'] );
$FTGbutton = DoStripSlashes( $_REQUEST['button'] );
$FTGid = DoStripSlashes( $_REQUEST['id'] );
$FTGip = DoStripSlashes( $_REQUEST['ip'] );
$FTGMM_insert = DoStripSlashes( $_REQUEST['MM_insert'] );
# Include message in error page and dump it to the browser
if ($ValidationFailed === true) {
$ErrorPage = '<html><head><title>Error</title></head><body>Errors found: <!--VALIDATIONERROR--></body></html>';
$ErrorPage = str_replace('<!--VALIDATIONERROR-->', $ErrorList, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:date-->', $FTGdate, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Voornaam-->', $FTGVoornaam, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Achternaam-->', $FTGAchternaam, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Postcode-->', $FTGPostcode, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Plaats-->', $FTGPlaats, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Emailadres-->', $FTGEmailadres, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:bericht-->', $FTGbericht, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:button-->', $FTGbutton, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:id-->', $FTGid, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:ip-->', $FTGip, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:MM_insert-->', $FTGMM_insert, $ErrorPage);
echo $ErrorPage;
exit;
}
# Email to Form Owner
$emailSubject = FilterCChars("Er is een bericht geplaatst op het gastenboek.");
$emailBody = "date : $FTGdate\n"
. "Voornaam : $FTGVoornaam\n"
. "Achternaam : $FTGAchternaam\n"
. "Postcode : $FTGPostcode\n"
. "Plaats : $FTGPlaats\n"
. "Emailadres : $FTGEmailadres\n"
. "bericht : $FTGbericht\n"
. "\n"
. "id : $FTGid\n"
. "ip : $FTGip\n"
. "\n"
. "is gebanned";
$emailTo = 'info <[email protected]>';
$emailFrom = FilterCChars("$FTGEmailadres");
$emailHeader = "From: $emailFrom\n"
. "MIME-Version: 1.0\n"
. "Content-type: text/plain; charset=\"ISO-8859-1\"\n"
. "Content-transfer-encoding: 8bit\n";
mail($emailTo, $emailSubject, $emailBody, $emailHeader);
# Confirmation Email to User
$confEmailTo = FilterCChars($FTGEmailadres);
$confEmailSubject = FilterCChars("Uw bericht is geplaatst");
$confEmailBody = "Bedankt dat u ons gastenboek heeft getekend.\n"
. "\n"
. "\n"
. "";
$confEmailHeader = "From: [email protected]\n"
. "MIME-Version: 1.0\n"
. "Content-type: text/plain; charset=\"ISO-8859-1\"\n"
. "Content-transfer-encoding: 8bit\n";
mail($confEmailTo, $confEmailSubject, $confEmailBody, $confEmailHeader);
#====================================================
# Dump field values to a MySQL table =
#====================================================
$mysql_link = @mysql_connect("localhost", "weesenbeek_site", "efteling");
if (mysql_errno() > 0) {
echo 'MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '<br>';
exit;
}
if (mysql_errno() == 0) {
@mysql_select_db("weesenbeek_gastenboek", $mysql_link);
if (mysql_errno() > 0) {
echo 'MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '<br>';
exit;
}
}
if (get_magic_quotes_gpc()) {
$FTG_Voornaam = stripslashes($FTGVoornaam);
$FTG_Achternaam = stripslashes($FTGAchternaam);
$FTG_Postcode = stripslashes($FTGPostcode);
$FTG_Plaats = stripslashes($FTGPlaats);
$FTG_Emailadres = stripslashes($FTGEmailadres);
$FTG_bericht = stripslashes($FTGbericht);
} else {
$FTG_Voornaam = $FTGVoornaam;
$FTG_Achternaam = $FTGAchternaam;
$FTG_Postcode = $FTGPostcode;
$FTG_Plaats = $FTGPlaats;
$FTG_Emailadres = $FTGEmailadres;
$FTG_bericht = $FTGbericht;
}
if (mysql_errno() == 0) {
$sqlcmd = sprintf("INSERT INTO `teken`(`Voornaam`, `Achternaam`, `Postcode`, `Plaats`, `Emailadres`, `bericht`, `ip`, `date`) VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($FTG_Voornaam, $mysql_link),
mysql_real_escape_string($FTG_Achternaam, $mysql_link),
mysql_real_escape_string($FTG_Postcode, $mysql_link),
mysql_real_escape_string($FTG_Plaats, $mysql_link),
mysql_real_escape_string($FTG_Emailadres, $mysql_link),
mysql_real_escape_string($FTG_bericht, $mysql_link),
mysql_real_escape_string($ClientIP, $mysql_link),
mysql_real_escape_string(date('Y-m-d'), $mysql_link));
@mysql_query($sqlcmd, $mysql_link);
if (mysql_errno() > 0) {
echo 'MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '<br>';
exit;
}
}
# Include message in the success page and dump it to the browser
$SuccessPage = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
background-image: url(/gastenboek/img/background/back.jpg);
background-repeat: repeat-x;
}
-->
</style>
<link href="/gastenboek/css/teken.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div align="center" class="teken">
<p>U bericht is geplaatst. </p>
<p> </p>
</div>
</body>
</html>
';
$SuccessPage = str_replace('<!--FIELDVALUE:date-->', $FTGdate, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Voornaam-->', $FTGVoornaam, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Achternaam-->', $FTGAchternaam, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Postcode-->', $FTGPostcode, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Plaats-->', $FTGPlaats, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Emailadres-->', $FTGEmailadres, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:bericht-->', $FTGbericht, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:button-->', $FTGbutton, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:id-->', $FTGid, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:ip-->', $FTGip, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:MM_insert-->', $FTGMM_insert, $SuccessPage);
echo $SuccessPage;
exit;
mysql_free_result($banlist);
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_gastenboek, $gastenboek);
$query_banlist = "SELECT banlist FROM banlist ORDER BY banlist ASC";
$banlist = mysql_query($query_banlist, $gastenboek) or die(mysql_error());
$row_banlist = mysql_fetch_assoc($banlist);
$totalRows_banlist = mysql_num_rows($banlist);
######################################################
# #
# Forms To Go 3.2.1 #
# http://www.bebosoft.com/ #
# #
######################################################
error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('track_errors', true);
#----------
# Filter by IP Address
function ipaddress_check($ClientIP)
{
$bannedips[] = '$row_banlist['banlist']';
foreach ($bannedips as $ip_key => $ip_value) {
if ($ip_value == $ClientIP) {
header('Location: http://www.weesenbeek.nl/gastenboek/html/sancties/banned.php');
exit;
}
}
}
function DoStripSlashes($FieldValue)
{
if ( get_magic_quotes_gpc() ) {
if (is_array($FieldValue) ) {
return array_map('DoStripSlashes', $FieldValue);
} else {
return stripslashes($FieldValue);
}
} else {
return $FieldValue;
}
}
#----------
# FilterCChars:
function FilterCChars($TheString)
{
return preg_replace('/[\x00-\x1F]/', '', $TheString);
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ClientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ClientIP = $_SERVER['REMOTE_ADDR'];
}
ipaddress_check($ClientIP);
$FTGdate = DoStripSlashes( $_REQUEST['date'] );
$FTGVoornaam = DoStripSlashes( $_REQUEST['Voornaam'] );
$FTGAchternaam = DoStripSlashes( $_REQUEST['Achternaam'] );
$FTGPostcode = DoStripSlashes( $_REQUEST['Postcode'] );
$FTGPlaats = DoStripSlashes( $_REQUEST['Plaats'] );
$FTGEmailadres = DoStripSlashes( $_REQUEST['Emailadres'] );
$FTGbericht = DoStripSlashes( $_REQUEST['bericht'] );
$FTGbutton = DoStripSlashes( $_REQUEST['button'] );
$FTGid = DoStripSlashes( $_REQUEST['id'] );
$FTGip = DoStripSlashes( $_REQUEST['ip'] );
$FTGMM_insert = DoStripSlashes( $_REQUEST['MM_insert'] );
# Include message in error page and dump it to the browser
if ($ValidationFailed === true) {
$ErrorPage = '<html><head><title>Error</title></head><body>Errors found: <!--VALIDATIONERROR--></body></html>';
$ErrorPage = str_replace('<!--VALIDATIONERROR-->', $ErrorList, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:date-->', $FTGdate, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Voornaam-->', $FTGVoornaam, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Achternaam-->', $FTGAchternaam, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Postcode-->', $FTGPostcode, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Plaats-->', $FTGPlaats, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:Emailadres-->', $FTGEmailadres, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:bericht-->', $FTGbericht, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:button-->', $FTGbutton, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:id-->', $FTGid, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:ip-->', $FTGip, $ErrorPage);
$ErrorPage = str_replace('<!--FIELDVALUE:MM_insert-->', $FTGMM_insert, $ErrorPage);
echo $ErrorPage;
exit;
}
# Email to Form Owner
$emailSubject = FilterCChars("Er is een bericht geplaatst op het gastenboek.");
$emailBody = "date : $FTGdate\n"
. "Voornaam : $FTGVoornaam\n"
. "Achternaam : $FTGAchternaam\n"
. "Postcode : $FTGPostcode\n"
. "Plaats : $FTGPlaats\n"
. "Emailadres : $FTGEmailadres\n"
. "bericht : $FTGbericht\n"
. "\n"
. "id : $FTGid\n"
. "ip : $FTGip\n"
. "\n"
. "is gebanned";
$emailTo = 'info <[email protected]>';
$emailFrom = FilterCChars("$FTGEmailadres");
$emailHeader = "From: $emailFrom\n"
. "MIME-Version: 1.0\n"
. "Content-type: text/plain; charset=\"ISO-8859-1\"\n"
. "Content-transfer-encoding: 8bit\n";
mail($emailTo, $emailSubject, $emailBody, $emailHeader);
# Confirmation Email to User
$confEmailTo = FilterCChars($FTGEmailadres);
$confEmailSubject = FilterCChars("Uw bericht is geplaatst");
$confEmailBody = "Bedankt dat u ons gastenboek heeft getekend.\n"
. "\n"
. "\n"
. "";
$confEmailHeader = "From: [email protected]\n"
. "MIME-Version: 1.0\n"
. "Content-type: text/plain; charset=\"ISO-8859-1\"\n"
. "Content-transfer-encoding: 8bit\n";
mail($confEmailTo, $confEmailSubject, $confEmailBody, $confEmailHeader);
#====================================================
# Dump field values to a MySQL table =
#====================================================
$mysql_link = @mysql_connect("localhost", "weesenbeek_site", "efteling");
if (mysql_errno() > 0) {
echo 'MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '<br>';
exit;
}
if (mysql_errno() == 0) {
@mysql_select_db("weesenbeek_gastenboek", $mysql_link);
if (mysql_errno() > 0) {
echo 'MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '<br>';
exit;
}
}
if (get_magic_quotes_gpc()) {
$FTG_Voornaam = stripslashes($FTGVoornaam);
$FTG_Achternaam = stripslashes($FTGAchternaam);
$FTG_Postcode = stripslashes($FTGPostcode);
$FTG_Plaats = stripslashes($FTGPlaats);
$FTG_Emailadres = stripslashes($FTGEmailadres);
$FTG_bericht = stripslashes($FTGbericht);
} else {
$FTG_Voornaam = $FTGVoornaam;
$FTG_Achternaam = $FTGAchternaam;
$FTG_Postcode = $FTGPostcode;
$FTG_Plaats = $FTGPlaats;
$FTG_Emailadres = $FTGEmailadres;
$FTG_bericht = $FTGbericht;
}
if (mysql_errno() == 0) {
$sqlcmd = sprintf("INSERT INTO `teken`(`Voornaam`, `Achternaam`, `Postcode`, `Plaats`, `Emailadres`, `bericht`, `ip`, `date`) VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($FTG_Voornaam, $mysql_link),
mysql_real_escape_string($FTG_Achternaam, $mysql_link),
mysql_real_escape_string($FTG_Postcode, $mysql_link),
mysql_real_escape_string($FTG_Plaats, $mysql_link),
mysql_real_escape_string($FTG_Emailadres, $mysql_link),
mysql_real_escape_string($FTG_bericht, $mysql_link),
mysql_real_escape_string($ClientIP, $mysql_link),
mysql_real_escape_string(date('Y-m-d'), $mysql_link));
@mysql_query($sqlcmd, $mysql_link);
if (mysql_errno() > 0) {
echo 'MySQL error # ' . mysql_errno() . ' : ' . mysql_error() . '<br>';
exit;
}
}
# Include message in the success page and dump it to the browser
$SuccessPage = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
background-image: url(/gastenboek/img/background/back.jpg);
background-repeat: repeat-x;
}
-->
</style>
<link href="/gastenboek/css/teken.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div align="center" class="teken">
<p>U bericht is geplaatst. </p>
<p> </p>
</div>
</body>
</html>
';
$SuccessPage = str_replace('<!--FIELDVALUE:date-->', $FTGdate, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Voornaam-->', $FTGVoornaam, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Achternaam-->', $FTGAchternaam, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Postcode-->', $FTGPostcode, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Plaats-->', $FTGPlaats, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:Emailadres-->', $FTGEmailadres, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:bericht-->', $FTGbericht, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:button-->', $FTGbutton, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:id-->', $FTGid, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:ip-->', $FTGip, $SuccessPage);
$SuccessPage = str_replace('<!--FIELDVALUE:MM_insert-->', $FTGMM_insert, $SuccessPage);
echo $SuccessPage;
exit;
mysql_free_result($banlist);
?>
is dit een beetje te doen met dit script.
werkt niet zit een fout in line 56 daar stond een ip en dit had ik veranderd naar wat er nu staat. maar dat werkt niet misschien een oplossing aan jullie kant.
Maar stel je wilt niet reviewen, dan zou je eventueel nog een lijst met woorden kunnen bijhouden die niet in de post mogen staan. De post wordt dan niet opgeslagen bijvoorbeeld, en het ip adres geblokt. Of bijvoorbeeld dat je een email krijgt of je wilt reviewen als die woorden erin voorkomen, dat je vanuit de email kunt kiezen om te blokken of toe te staan.
1001 mogelijkheden ;)
willem schreef op 20.12.2007 01:07:
beveiliging met een plaatje en nummer. kom niet zo snel op de naam.
Captcha, let dan wel op dat je het goed doet. Dus niet lekker de nummertjes en lettertjes in de img scr achter aan plakken.
En ook niet te simpel, dan kunnnen bots het gewoon er uit filteren (wat ze moeten invoeren).
Edit: Die @'s zijn inderdaad nogal goor. Eigenlijk vind ik dat scriptje zelf vrij goor....
haal die gore @'s voor je functions weg
een beetje fatsoenlijk taalgebruik is wel gepast wes.