Contactform SMTP Authentication
eerst en vooral: prettig kerstfeest ;-)
Ik heb een probleem met een contactformulier op mijn site. Ik ben sinds enkele dagen veranderd van hosting en mijn huidige hoster werkt met zogenaamde "smtp authentication". Bij mijn vorige was dit niet zo, gevolg: het contactformulier werkt niet meer! Weet iemand hoe dit simpel op te lossen valt? Zie hier het script (heb het zelf ook een een site gehaald en aangepast).
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
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
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
<?php
/*
** Variabelen instellen
*/
// Naam voor als afzender van het bevestigingsmailtje
$var_name = "mijn naam";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
$var_email = "mijn e-mailadres";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U kan maximum 1 bericht per minuut zenden om spam te voorkomen.";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 60;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips = array();
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg = "U bent geblokkeerd vanwege herhadelijk misbruik. Indien dit een fout is, neem dan contact op.";
/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipadres = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ipadres = $_SERVER['REMOTE_ADDR'];
}
return $ipadres;
}
//Host verkrijgen
$hostmask = gethostbyaddr(get_ip());
// Formulier weergeven
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false
$ok = true;
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = '';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//Validate form
if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
$ok = false;
$error .= '- Er is geen geldig e-mailadres ingevuld<br />';
}
// E-mail naar $var_email (webmaster)
$msg_2_admin = "Aanvraag prijsofferte:
Soort Drukwerk: ".$_POST['SoortDrukwerk']."
Soort Papier: ".$_POST['SoortPapier']."
Grammage: ".$_POST['Grammage']."
Aantal Exemplaren: ".$_POST['AantalExemplaren']."
Kleur: ".$_POST['Kleur']."
Ontwerp: ".$_POST['Ontwerp']."
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: ".$_POST['Naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').".
Het IP adres van ".$_POST['Naam']." is: ".get_ip()."
Het hostadres van ".$_POST['Naam']." is: ".$hostmask;
// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['Naam'].",
Bedankt voor het aanvragen van een prijsofferte
U hebt het volgende ingevuld op ".date('d-m-Y')." om ".date('H:i').".
----------
Soort Drukwerk: ".$_POST['SoortDrukwerk']."
Soort Papier: ".$_POST['SoortPapier']."
Grammage: ".$_POST['Grammage']."
Aantal Exemplaren: ".$_POST['AantalExemplaren']."
Kleur: ".$_POST['Kleur']."
Ontwerp: ".$_POST['Ontwerp']."
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: Wij sturen u zo spoedig mogelijk een prijsofferte!";
if(in_array(get_ip(),$var_ban_ips)) {
echo $var_ban_msg;
$form_view = false;
} elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
echo $var_flood_msg;
$form_view = false;
} elseif ($ok == true) {
@$send = mail($var_email,
"Aanvraag Prijsofferte",
$msg_2_admin,
"From: ".$_POST['Naam']."<".$_POST['email'].">");
if($send == 1) {
if($var_confirm == true){
mail($_POST['email'],
"Bevestiging Prijsofferte aanvraag",
$msg_2_poster,
"From: ".$var_name."<".$var_email.">");
}
echo'Beste '.$_POST['Naam'].', uw prijsofferte aanvraag werd verzonden! Bedankt!';
if($var_confirm == true){
echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.';
}
}else{
echo'Beste '.$_POST['Naam'].', uw aanvraag is helaas niet verzonden.<br /><br />
Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
te verhelpen.<br /><br />
Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
<a href="mailto:'.$var_email.'">Webmaster</a><br /><br />
Bedankt voor uw medewerking.';
}
$form_view = false;
$_SESSION["antiflood"] = time();
}
}
/*
** Formulier
*/
if($form_view == true) {
echo '
<html>
<head>
<title>Mijn site</title>
</head>
<body>';
if($error != '') {
echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />';
}
echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;">
<table width="440px" cellspacing="0" cellpadding="5">
<tr>
<td align="left">Soort Drukwerk:</td>
<td><input type="text" name="SoortDrukwerk" size="36" maxlength="60" value="'.(isset($_POST['SoortDrukwerk']) ? $_POST['SoortDrukwerk'] : '').'"></td>
</tr>
<tr>
<td align="left">Soort Papier:</td>
<td><input type="text" name="SoortPapier" size="36" maxlength="60" value="'.(isset($_POST['SoortPapier']) ? $_POST['SoortPapier'] : '').'"></td>
</tr>
<tr>
<td align="left">Grammage papier:</td>
<td><select name="Grammage">
<option value="">Selecteer...</option>
<option value="80 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '80 gram' ? ' selected' : '').'>80 gram</option>
<option value="135 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '135 gram' ? ' selected' : '').'>135 gram</option>
<option value="180 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '180 gram' ? ' selected' : '').'>180 gram</option>
<option value="200 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '200 gram' ? ' selected' : '').'>200 gram</option>
<option value="250 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '250 gram' ? ' selected' : '').'>250 gram)</option>
<option value="Anders"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Anders' ? ' selected' : '').'>Anders</option>
<option value="Ik weet het niet"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Ik weet het niet' ? ' selected' : '').'>Ik weet het niet</option>
</select></td>
</tr>
<tr>
<td align="left">Aantal Exemplaren:</td>
<td><input type="text" name="AantalExemplaren" size="36" maxlength="10" value="'.(isset($_POST['AantalExemplaren']) ? $_POST['AantalExemplaren'] : '').'"></td>
</tr>
<tr>
<td align="left">Druk:</td>
<td><select name="Kleur">
<option value="">Selecteer...</option>
<option value="Recto"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Recto' ? ' selected' : '').'>Recto</option>
<option value="Recto Verso"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Recto Verso' ? ' selected' : '').'>Recto Verso</option>
</select></td>
</tr>
<tr>
<td align="left">Kleur:</td>
<td><select name="Kleur">
<option value="">Selecteer...</option>
<option value="1-Kleurig"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '1-Kleurig' ? ' selected' : '').'>1-Kleurig</option>
<option value="2-Kleurig"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '2-Kleurig' ? ' selected' : '').'>2-Kleurig</option>
<option value="Full color"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Full color' ? ' selected' : '').'>Full color</option>
</select></td>
</tr>
<tr>
<td align="left">Ontwerp:</td>
<td>
<input type="radio" name="Ontwerp" value="Aangeleverde files"'.(isset($_POST['Ontwerp']) && $_POST['Ontwerp'] == "Aangeleverde files" ? ' checked' : '').'> Aangeleverde files
<input type="radio" name="Ontwerp" value="Opmaak door ons"'.(isset($_POST['Ontwerp']) && $_POST['Ontwerp'] == "Opmaak door ons" ? ' checked' : '').'> Opmaak door ons
</td>
</tr>
<tr>
<td width="190" align="left">Naam:</td>
<td width="250"><input type="text" name="Naam" size="36" maxlength="60" value="'.(isset($_POST['Naam']) ? $_POST['Naam'] : '').'"></td>
</tr>
<tr>
<td align="left">Gemeente:</td>
<td><input type="text" name="Gemeente" size="36" maxlength="60" value="'.(isset($_POST['Gemeente']) ? $_POST['Gemeente'] : '').'"></td>
</tr>
<tr>
<td align="left">E-mailadres</td>
<td><input type="text" name="email" size="36" maxlength="60" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'"></td>
</tr>
<tr>
<td align="left" valign="top">Opmerking:</td>
<td><textarea rows="4" cols="36" name="opmerking" style="overflow:auto;">'.(isset($_POST['opmerking']) ? $_POST['opmerking'] : '').'</textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Prijsofferte aanvragen!"></td>
</tr>
</table>
</form>
</body>
</html>';
}
?>
/*
** Variabelen instellen
*/
// Naam voor als afzender van het bevestigingsmailtje
$var_name = "mijn naam";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
$var_email = "mijn e-mailadres";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U kan maximum 1 bericht per minuut zenden om spam te voorkomen.";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 60;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips = array();
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg = "U bent geblokkeerd vanwege herhadelijk misbruik. Indien dit een fout is, neem dan contact op.";
/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipadres = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ipadres = $_SERVER['REMOTE_ADDR'];
}
return $ipadres;
}
//Host verkrijgen
$hostmask = gethostbyaddr(get_ip());
// Formulier weergeven
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false
$ok = true;
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = '';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//Validate form
if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
$ok = false;
$error .= '- Er is geen geldig e-mailadres ingevuld<br />';
}
// E-mail naar $var_email (webmaster)
$msg_2_admin = "Aanvraag prijsofferte:
Soort Drukwerk: ".$_POST['SoortDrukwerk']."
Soort Papier: ".$_POST['SoortPapier']."
Grammage: ".$_POST['Grammage']."
Aantal Exemplaren: ".$_POST['AantalExemplaren']."
Kleur: ".$_POST['Kleur']."
Ontwerp: ".$_POST['Ontwerp']."
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: ".$_POST['Naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').".
Het IP adres van ".$_POST['Naam']." is: ".get_ip()."
Het hostadres van ".$_POST['Naam']." is: ".$hostmask;
// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['Naam'].",
Bedankt voor het aanvragen van een prijsofferte
U hebt het volgende ingevuld op ".date('d-m-Y')." om ".date('H:i').".
----------
Soort Drukwerk: ".$_POST['SoortDrukwerk']."
Soort Papier: ".$_POST['SoortPapier']."
Grammage: ".$_POST['Grammage']."
Aantal Exemplaren: ".$_POST['AantalExemplaren']."
Kleur: ".$_POST['Kleur']."
Ontwerp: ".$_POST['Ontwerp']."
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: Wij sturen u zo spoedig mogelijk een prijsofferte!";
if(in_array(get_ip(),$var_ban_ips)) {
echo $var_ban_msg;
$form_view = false;
} elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
echo $var_flood_msg;
$form_view = false;
} elseif ($ok == true) {
@$send = mail($var_email,
"Aanvraag Prijsofferte",
$msg_2_admin,
"From: ".$_POST['Naam']."<".$_POST['email'].">");
if($send == 1) {
if($var_confirm == true){
mail($_POST['email'],
"Bevestiging Prijsofferte aanvraag",
$msg_2_poster,
"From: ".$var_name."<".$var_email.">");
}
echo'Beste '.$_POST['Naam'].', uw prijsofferte aanvraag werd verzonden! Bedankt!';
if($var_confirm == true){
echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.';
}
}else{
echo'Beste '.$_POST['Naam'].', uw aanvraag is helaas niet verzonden.<br /><br />
Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
te verhelpen.<br /><br />
Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
<a href="mailto:'.$var_email.'">Webmaster</a><br /><br />
Bedankt voor uw medewerking.';
}
$form_view = false;
$_SESSION["antiflood"] = time();
}
}
/*
** Formulier
*/
if($form_view == true) {
echo '
<html>
<head>
<title>Mijn site</title>
</head>
<body>';
if($error != '') {
echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />';
}
echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;">
<table width="440px" cellspacing="0" cellpadding="5">
<tr>
<td align="left">Soort Drukwerk:</td>
<td><input type="text" name="SoortDrukwerk" size="36" maxlength="60" value="'.(isset($_POST['SoortDrukwerk']) ? $_POST['SoortDrukwerk'] : '').'"></td>
</tr>
<tr>
<td align="left">Soort Papier:</td>
<td><input type="text" name="SoortPapier" size="36" maxlength="60" value="'.(isset($_POST['SoortPapier']) ? $_POST['SoortPapier'] : '').'"></td>
</tr>
<tr>
<td align="left">Grammage papier:</td>
<td><select name="Grammage">
<option value="">Selecteer...</option>
<option value="80 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '80 gram' ? ' selected' : '').'>80 gram</option>
<option value="135 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '135 gram' ? ' selected' : '').'>135 gram</option>
<option value="180 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '180 gram' ? ' selected' : '').'>180 gram</option>
<option value="200 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '200 gram' ? ' selected' : '').'>200 gram</option>
<option value="250 gram"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '250 gram' ? ' selected' : '').'>250 gram)</option>
<option value="Anders"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Anders' ? ' selected' : '').'>Anders</option>
<option value="Ik weet het niet"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Ik weet het niet' ? ' selected' : '').'>Ik weet het niet</option>
</select></td>
</tr>
<tr>
<td align="left">Aantal Exemplaren:</td>
<td><input type="text" name="AantalExemplaren" size="36" maxlength="10" value="'.(isset($_POST['AantalExemplaren']) ? $_POST['AantalExemplaren'] : '').'"></td>
</tr>
<tr>
<td align="left">Druk:</td>
<td><select name="Kleur">
<option value="">Selecteer...</option>
<option value="Recto"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Recto' ? ' selected' : '').'>Recto</option>
<option value="Recto Verso"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Recto Verso' ? ' selected' : '').'>Recto Verso</option>
</select></td>
</tr>
<tr>
<td align="left">Kleur:</td>
<td><select name="Kleur">
<option value="">Selecteer...</option>
<option value="1-Kleurig"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '1-Kleurig' ? ' selected' : '').'>1-Kleurig</option>
<option value="2-Kleurig"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == '2-Kleurig' ? ' selected' : '').'>2-Kleurig</option>
<option value="Full color"'.(isset($_POST['Grammage']) && $_POST['Grammage'] == 'Full color' ? ' selected' : '').'>Full color</option>
</select></td>
</tr>
<tr>
<td align="left">Ontwerp:</td>
<td>
<input type="radio" name="Ontwerp" value="Aangeleverde files"'.(isset($_POST['Ontwerp']) && $_POST['Ontwerp'] == "Aangeleverde files" ? ' checked' : '').'> Aangeleverde files
<input type="radio" name="Ontwerp" value="Opmaak door ons"'.(isset($_POST['Ontwerp']) && $_POST['Ontwerp'] == "Opmaak door ons" ? ' checked' : '').'> Opmaak door ons
</td>
</tr>
<tr>
<td width="190" align="left">Naam:</td>
<td width="250"><input type="text" name="Naam" size="36" maxlength="60" value="'.(isset($_POST['Naam']) ? $_POST['Naam'] : '').'"></td>
</tr>
<tr>
<td align="left">Gemeente:</td>
<td><input type="text" name="Gemeente" size="36" maxlength="60" value="'.(isset($_POST['Gemeente']) ? $_POST['Gemeente'] : '').'"></td>
</tr>
<tr>
<td align="left">E-mailadres</td>
<td><input type="text" name="email" size="36" maxlength="60" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'"></td>
</tr>
<tr>
<td align="left" valign="top">Opmerking:</td>
<td><textarea rows="4" cols="36" name="opmerking" style="overflow:auto;">'.(isset($_POST['opmerking']) ? $_POST['opmerking'] : '').'</textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Prijsofferte aanvragen!"></td>
</tr>
</table>
</form>
</body>
</html>';
}
?>
Niemand die het weet? :(
Zie ook:
http://orangsetya.wordpress.com/2007/09/12/send-mail-using-smtp-authentication-phpmailer-script/
Het werkt wel met phpMailer overigens.
Swiftmailer/php-mailer al geprobeerd?
Bestaat er daar geen generator voor of zo? Of kan mijn huidig script niet aangepast worden?
Een generator ervoor bestaat niet, maar met bovenstaande gegeven link kan je wel verder als je ook weet hoe je formulieren moet afhandelen met PHP.
Toevoeging op 25/12/2010 15:04:18:
en laat ik nu net geen PHP-ervaring hebben... :p
www.w3schools.com helpt.
Kan het eventueel simpelere in een andere schrijftaal? Of zijn er nog makkelijkere alternatieven? Want ik vind het echt ingewikkeld :s
Maar goed, wat vind je ingewikkeld?
Weet iemand waar de fout zou kunnen zitten?
Alvast bedankt!!
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
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
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
<?php
/*
** Variabelen instellen
*/
// Naam voor als afzender van het bevestigingsmailtje
$var_name = "Verduyn";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
$var_email = "[email protected]";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U kan maximum 1 bericht per minuut zenden om spam te voorkomen.";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 60;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips = array();
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg = "U bent geblokkeerd vanwege herhadelijk misbruik. Indien dit een fout is, contacteer dan [email protected].";
// Vul hier smtp host in
$var_smtp_host = "mijn.smtp.server.nl";
// vul hier uw account-username in
$var_smtp_username = "[email protected]";
// vul hier uw account-paswoord in
$var_smtp_password = "mijnwachtwoord";
/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipadres = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ipadres = $_SERVER['REMOTE_ADDR'];
}
return $ipadres;
}
//Host verkrijgen
$hostmask = gethostbyaddr(get_ip());
// Formulier weergeven
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false
$ok = true;
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = '';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//Validate form
if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
$ok = false;
$error .= '- Er is geen geldig e-mailadres ingevuld<br />';
}
// E-mail naar $var_email (webmaster)
$msg_2_admin = "Volgende is ingevuld op de site:
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: ".$_POST['Naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').".
Het IP adres van ".$_POST['Naam']." is: ".get_ip()."
Het hostadres van ".$_POST['Naam']." is: ".$hostmask;
// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['Naam'].",
Bedankt voor uw opmerking
U hebt het volgende ingevuld op ".date('d-m-Y')." om ".date('H:i').".
----------
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: Wij sturen u zo spoedig mogelijk een reactie!";
if(in_array(get_ip(),$var_ban_ips)) {
echo $var_ban_msg;
$form_view = false;
} elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
echo $var_flood_msg;
$form_view = false;
} elseif ($ok == true) {
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $var_smtp_username,
'password' => $var_smtp_password));
$from = $_POST['Naam']."<".$_POST['email'].">";
$to = $var_email;
$subject = "Reactie op website";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$mail = $smtp->send($to, $headers, $msg_2_admin);
if(PEAR::isError($mail)) {
echo'Beste '.$_POST['Naam'].', uw reactie is helaas niet verzonden.<br /><br />
Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
te verhelpen.<br /><br />
Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
<a href="mailto:'.$var_email.'">Webmaster</a><br /><br />
Bedankt voor uw medewerking.';
}else{
if($var_confirm == true){
$from = $var_name."<".$var_email.">";
$to = $_POST['email'];
$subject = "Bevestiging reactie";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$mail = $smtp->send($to, $headers, $msg_2_poster);
}
echo'Beste '.$_POST['Naam'].', uw reactie werd verzonden! Bedankt!';
if($var_confirm == true){
echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.';
}
}
$form_view = false;
$_SESSION["antiflood"] = time();
}
}
/*
** Formulier
*/
if($form_view == true) {
echo '
<html>
<head>
<title>Mijn Site</title>
</head>
<body>';
if($error != '') {
echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />';
}
echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;">
<table width="440px" cellspacing="0" cellpadding="5">
<tr>
<td width="190" align="left">Naam:</td>
<td width="250"><input type="text" name="Naam" size="36" maxlength="60" value="'.(isset($_POST['Naam']) ? $_POST['Naam'] : '').'"></td>
</tr>
<tr>
<td align="left">Gemeente:</td>
<td><input type="text" name="Gemeente" size="36" maxlength="60" value="'.(isset($_POST['Gemeente']) ? $_POST['Gemeente'] : '').'"></td>
</tr>
<tr>
<td align="left">E-mailadres</td>
<td><input type="text" name="email" size="36" maxlength="60" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'"></td>
</tr>
<tr>
<td align="left" valign="top">Opmerking:</td>
<td><textarea rows="4" cols="36" name="opmerking" style="overflow:auto;">'.(isset($_POST['opmerking']) ? $_POST['opmerking'] : '').'</textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Reactie versturen!"></td>
</tr>
</table>
</form>
</body>
</html>';
}
?>
/*
** Variabelen instellen
*/
// Naam voor als afzender van het bevestigingsmailtje
$var_name = "Verduyn";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
$var_email = "[email protected]";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U kan maximum 1 bericht per minuut zenden om spam te voorkomen.";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 60;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips = array();
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg = "U bent geblokkeerd vanwege herhadelijk misbruik. Indien dit een fout is, contacteer dan [email protected].";
// Vul hier smtp host in
$var_smtp_host = "mijn.smtp.server.nl";
// vul hier uw account-username in
$var_smtp_username = "[email protected]";
// vul hier uw account-paswoord in
$var_smtp_password = "mijnwachtwoord";
/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ipadres = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ipadres = $_SERVER['REMOTE_ADDR'];
}
return $ipadres;
}
//Host verkrijgen
$hostmask = gethostbyaddr(get_ip());
// Formulier weergeven
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false
$ok = true;
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = '';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//Validate form
if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
$ok = false;
$error .= '- Er is geen geldig e-mailadres ingevuld<br />';
}
// E-mail naar $var_email (webmaster)
$msg_2_admin = "Volgende is ingevuld op de site:
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: ".$_POST['Naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').".
Het IP adres van ".$_POST['Naam']." is: ".get_ip()."
Het hostadres van ".$_POST['Naam']." is: ".$hostmask;
// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['Naam'].",
Bedankt voor uw opmerking
U hebt het volgende ingevuld op ".date('d-m-Y')." om ".date('H:i').".
----------
Naam: ".$_POST['Naam']."
Gemeente: ".$_POST['Gemeente']."
E-mailadres: ".$_POST['email']."
Opmerking: ".$_POST['opmerking']."
----------
Opmerking: Wij sturen u zo spoedig mogelijk een reactie!";
if(in_array(get_ip(),$var_ban_ips)) {
echo $var_ban_msg;
$form_view = false;
} elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
echo $var_flood_msg;
$form_view = false;
} elseif ($ok == true) {
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $var_smtp_username,
'password' => $var_smtp_password));
$from = $_POST['Naam']."<".$_POST['email'].">";
$to = $var_email;
$subject = "Reactie op website";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$mail = $smtp->send($to, $headers, $msg_2_admin);
if(PEAR::isError($mail)) {
echo'Beste '.$_POST['Naam'].', uw reactie is helaas niet verzonden.<br /><br />
Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
te verhelpen.<br /><br />
Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
<a href="mailto:'.$var_email.'">Webmaster</a><br /><br />
Bedankt voor uw medewerking.';
}else{
if($var_confirm == true){
$from = $var_name."<".$var_email.">";
$to = $_POST['email'];
$subject = "Bevestiging reactie";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$mail = $smtp->send($to, $headers, $msg_2_poster);
}
echo'Beste '.$_POST['Naam'].', uw reactie werd verzonden! Bedankt!';
if($var_confirm == true){
echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.';
}
}
$form_view = false;
$_SESSION["antiflood"] = time();
}
}
/*
** Formulier
*/
if($form_view == true) {
echo '
<html>
<head>
<title>Mijn Site</title>
</head>
<body>';
if($error != '') {
echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />';
}
echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;">
<table width="440px" cellspacing="0" cellpadding="5">
<tr>
<td width="190" align="left">Naam:</td>
<td width="250"><input type="text" name="Naam" size="36" maxlength="60" value="'.(isset($_POST['Naam']) ? $_POST['Naam'] : '').'"></td>
</tr>
<tr>
<td align="left">Gemeente:</td>
<td><input type="text" name="Gemeente" size="36" maxlength="60" value="'.(isset($_POST['Gemeente']) ? $_POST['Gemeente'] : '').'"></td>
</tr>
<tr>
<td align="left">E-mailadres</td>
<td><input type="text" name="email" size="36" maxlength="60" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'"></td>
</tr>
<tr>
<td align="left" valign="top">Opmerking:</td>
<td><textarea rows="4" cols="36" name="opmerking" style="overflow:auto;">'.(isset($_POST['opmerking']) ? $_POST['opmerking'] : '').'</textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Reactie versturen!"></td>
</tr>
</table>
</form>
</body>
</html>';
}
?>
Lukas Verduyn op 26/12/2010 23:24:46:
Maar dat doet het uiteraard niet
En wij mogen raden wat het nou juist wel doet?
Wees eens wat specifieker aub... :-)
- Aar - op 26/12/2010 23:34:55:
En wij mogen raden wat het nou juist wel doet?
Wees eens wat specifieker aub... :-)
Lukas Verduyn op 26/12/2010 23:24:46:
Maar dat doet het uiteraard niet
En wij mogen raden wat het nou juist wel doet?
Wees eens wat specifieker aub... :-)
Na het invullen van het formulier krijg ik een wit scherm, dus geen echo die zegt "bedankt voor het invullen" of geen error zoals "kon niet verstuurd worden..". Gewoon een wit scherm. Wat er fout is weet ik ook niet, want ik kan de PHP-errors niet aanzetten bij mij huidige hoster.
Dat bovenaan, en je kan weer verder gaan.
Ik krijg volgende error:
Notice: Undefined index: antiflood in bestand.php on line 116
Fatal error: Class 'Mail' not found in bestand.php on line 120
Waarom gebruik je niet phpMailer? Ik heb al eerder een voorbeeld gegeven hoe je dat inbouwt.
Gewijzigd op 27/12/2010 13:00:38 door - Ariën -