Contactformulier met bijlage werkt sinds een aantal weken niet meer
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
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
<?
// als de mail wel f niet verzonden is gaat hij naar verzonden.php,
// daarbij zend hij een variabele $sent mee die 1 is wanneer verzonden en 0 wanneer niet verzonden.
if(isset($_POST['submit'])){
$max = "15000"; // Maximum grootte van het bestand
$van = "[email protected]"; // Het e-mail adres van de webmaster
$naar = "[email protected]"; // Het e-mail adres van de ontvanger
$onderwerp ="Test"; // Onderwerp
$bericht= "Naam: ". $_POST['naam'] ." ". $_POST['achternaam'] ."\n"
."Adres: ". $_POST['adres'] ."\n"
."Postcode: ". $_POST['postcode'] ."\n"
."Woonplaats: ". $_POST['woonplaats'] ."\n"
."Telefoonnummer: ". $_POST['telefoon'] ."\n"
."E-mail: ". $_POST['email'] ."\n"
."". $_POST['bericht'] ."\n\n";
if (!empty($_FILES['bijlage']['name'])){
// als er een bestand is
$filename = $_FILES['bijlage']['name'];
$extentie = substr($filename, -3);
if ($bestand_size > $max){
header("location: nietverzonden2.htm?sent=0");
}elseif($extentie != "doc"){
header("location: nietverzonden2.htm?sent=0");
}else{
// het type van de bijlage achterhalen
$type = $HTTP_POST_FILES[bijlage][type];
if (($type == "text/plain") || ($type == "text/html")) $codering = "8bit";
else $codering = "base64";
// De bijlage controleren
$openen = @fopen($_FILES[bijlage][tmp_name],"r");
if (!$openen){
echo"Er is een probleem met de bijlage, probeer het a.u.b opnieuw.";
echo"<br><a href=javascript:history.back()>Klik hier om terug te gaan</a>";
}else{
// bijlage lezen
$inhoud_bestand = fread($openen,filesize($_FILES[bijlage][tmp_name]));
// als de codering base46 is dan moet er worden gecodeerd
if ($codering == "base64"){
$inhoud_bestand = chunk_split(base64_encode($inhoud_bestand));
$boundry = strtoupper(md5(uniqid(time())));
$header = "From: " . $van . "\n";
$header .= "MIME-version: 1.0\n";
$header .= "Content-Type: multipart/mixed;\n";
$header .= "\tboundary= " . $boundry . "\n\n";
$header .= "--" . $boundry . "\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-1\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";
// het bericht toevoegen aan de mail
$header .= $bericht . "\n\n";
// bijlage toevoegen
$header .= "--" . $boundry . "\n";
$header .= "Content-Type: " . $type . "\n";
$header .= "Content-Transfer-Encoding: " . $codering . "\n";
$header .= "Content-Disposition: attachment; filename=\"" . $_FILES[bijlage][name] . "\"\n\n";
// actual bijlage
$header .= $inhoud_bestand . "\n\n";
$header .= "--" . $boundry . "--";
}
if (@mail($naar,$onderwerp,"",$header))
header("location: verzonden.htm?sent=1");
else
header("location: nietverzonden.htm?sent=0");
}
}
}else{
$header = "From: " . $van . "\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-1\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";
// het bericht
$header .= $bericht . "\n\n";
if (@mail($naar,$onderwerp,"",$header))
header("location: verzonden.htm?sent=1");
else
header("location: nietverzonden.htm?sent=0");
}
}
else
{
?><style type="text/css">
<!--
body {
background-color: #000000;
margin-left: 16px;
margin-top: 1px;
margin-right: 0px;
margin-bottom: 0px;
}
.style1 {color: #E0E2EB}
body,td,th {
color: #FFFFFF;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style2 {font-size: 10px}
.style4 {font-size: 10px; font-weight: bold; }
a:link {
color: #FFFFFF;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #FFFFFF;
}
a:hover {
text-decoration: underline;
color: #7499C2;
}
a:active {
text-decoration: none;
}
-->
</style>
<title>Testing</title>
<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<table width="760" height="341" border="0" align="center" cellpadding="0" cellspacing="0" background="test.jpg">
<tr>
<td> </td>
<td height="24"> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"> </td>
<td> </td>
<td><div align="left"></div></td>
<td> </td>
</tr>
<tr>
<td width="239"> </td>
<td width="87" height="24"><div align="left" class="style2">
<div align="left"><span class="style1">Naam</span></div>
</div> </td>
<td width="9"><span class="style2">:</span></td>
<td width="300">
<div align="left">
<input name="naam" type="text" maxlength="30">
</div></td>
<td width="125"> </td>
</tr>
<tr>
<td> </td>
<td height="25"><div align="left" class="style2">
<div align="left">Achternaam</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="achternaam" type="text" maxlength="30">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="25"><div align="left" class="style2">
<div align="left">Adres</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="adres" type="text" maxlength="30">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"><div align="left" class="style2">
<div align="left">Postcode</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="postcode" type="text" maxlength="7">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"><div align="left" class="style2">
<div align="left">Woonplaats</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="woonplaats" type="text" maxlength="30">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="26" class="style2">Telefoon nr. </td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="telefoon" type="text" maxlength="11">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="22"><div align="left" class="style2">
<div align="left">E-mail</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="email" type="text" maxlength="40">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"><div align="left" class="style2">Bijlage </div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input type="file" name="bijlage">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><div align="left" class="style2"></div></td>
<td> </td>
<td> <div align="left"></div></td>
<td> </td>
</tr>
<tr>
<td></td>
<td class="style4"><a href="javascript: history.go(-1)" target="_self">Terug</a></td>
<td></td>
<td><div align="left">
<input type="submit" value="Verstuur" name="submit">
<input type="reset" name="Reset" value="Wissen">
</div></td>
<td> </td>
</tr>
</table>
</form>
<?
}
?>
// als de mail wel f niet verzonden is gaat hij naar verzonden.php,
// daarbij zend hij een variabele $sent mee die 1 is wanneer verzonden en 0 wanneer niet verzonden.
if(isset($_POST['submit'])){
$max = "15000"; // Maximum grootte van het bestand
$van = "[email protected]"; // Het e-mail adres van de webmaster
$naar = "[email protected]"; // Het e-mail adres van de ontvanger
$onderwerp ="Test"; // Onderwerp
$bericht= "Naam: ". $_POST['naam'] ." ". $_POST['achternaam'] ."\n"
."Adres: ". $_POST['adres'] ."\n"
."Postcode: ". $_POST['postcode'] ."\n"
."Woonplaats: ". $_POST['woonplaats'] ."\n"
."Telefoonnummer: ". $_POST['telefoon'] ."\n"
."E-mail: ". $_POST['email'] ."\n"
."". $_POST['bericht'] ."\n\n";
if (!empty($_FILES['bijlage']['name'])){
// als er een bestand is
$filename = $_FILES['bijlage']['name'];
$extentie = substr($filename, -3);
if ($bestand_size > $max){
header("location: nietverzonden2.htm?sent=0");
}elseif($extentie != "doc"){
header("location: nietverzonden2.htm?sent=0");
}else{
// het type van de bijlage achterhalen
$type = $HTTP_POST_FILES[bijlage][type];
if (($type == "text/plain") || ($type == "text/html")) $codering = "8bit";
else $codering = "base64";
// De bijlage controleren
$openen = @fopen($_FILES[bijlage][tmp_name],"r");
if (!$openen){
echo"Er is een probleem met de bijlage, probeer het a.u.b opnieuw.";
echo"<br><a href=javascript:history.back()>Klik hier om terug te gaan</a>";
}else{
// bijlage lezen
$inhoud_bestand = fread($openen,filesize($_FILES[bijlage][tmp_name]));
// als de codering base46 is dan moet er worden gecodeerd
if ($codering == "base64"){
$inhoud_bestand = chunk_split(base64_encode($inhoud_bestand));
$boundry = strtoupper(md5(uniqid(time())));
$header = "From: " . $van . "\n";
$header .= "MIME-version: 1.0\n";
$header .= "Content-Type: multipart/mixed;\n";
$header .= "\tboundary= " . $boundry . "\n\n";
$header .= "--" . $boundry . "\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-1\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";
// het bericht toevoegen aan de mail
$header .= $bericht . "\n\n";
// bijlage toevoegen
$header .= "--" . $boundry . "\n";
$header .= "Content-Type: " . $type . "\n";
$header .= "Content-Transfer-Encoding: " . $codering . "\n";
$header .= "Content-Disposition: attachment; filename=\"" . $_FILES[bijlage][name] . "\"\n\n";
// actual bijlage
$header .= $inhoud_bestand . "\n\n";
$header .= "--" . $boundry . "--";
}
if (@mail($naar,$onderwerp,"",$header))
header("location: verzonden.htm?sent=1");
else
header("location: nietverzonden.htm?sent=0");
}
}
}else{
$header = "From: " . $van . "\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-1\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";
// het bericht
$header .= $bericht . "\n\n";
if (@mail($naar,$onderwerp,"",$header))
header("location: verzonden.htm?sent=1");
else
header("location: nietverzonden.htm?sent=0");
}
}
else
{
?><style type="text/css">
<!--
body {
background-color: #000000;
margin-left: 16px;
margin-top: 1px;
margin-right: 0px;
margin-bottom: 0px;
}
.style1 {color: #E0E2EB}
body,td,th {
color: #FFFFFF;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style2 {font-size: 10px}
.style4 {font-size: 10px; font-weight: bold; }
a:link {
color: #FFFFFF;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #FFFFFF;
}
a:hover {
text-decoration: underline;
color: #7499C2;
}
a:active {
text-decoration: none;
}
-->
</style>
<title>Testing</title>
<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<table width="760" height="341" border="0" align="center" cellpadding="0" cellspacing="0" background="test.jpg">
<tr>
<td> </td>
<td height="24"> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"> </td>
<td> </td>
<td><div align="left"></div></td>
<td> </td>
</tr>
<tr>
<td width="239"> </td>
<td width="87" height="24"><div align="left" class="style2">
<div align="left"><span class="style1">Naam</span></div>
</div> </td>
<td width="9"><span class="style2">:</span></td>
<td width="300">
<div align="left">
<input name="naam" type="text" maxlength="30">
</div></td>
<td width="125"> </td>
</tr>
<tr>
<td> </td>
<td height="25"><div align="left" class="style2">
<div align="left">Achternaam</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="achternaam" type="text" maxlength="30">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="25"><div align="left" class="style2">
<div align="left">Adres</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="adres" type="text" maxlength="30">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"><div align="left" class="style2">
<div align="left">Postcode</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="postcode" type="text" maxlength="7">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"><div align="left" class="style2">
<div align="left">Woonplaats</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="woonplaats" type="text" maxlength="30">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="26" class="style2">Telefoon nr. </td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="telefoon" type="text" maxlength="11">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="22"><div align="left" class="style2">
<div align="left">E-mail</div>
</div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input name="email" type="text" maxlength="40">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td height="24"><div align="left" class="style2">Bijlage </div></td>
<td><span class="style2">:</span></td>
<td>
<div align="left">
<input type="file" name="bijlage">
</div></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><div align="left" class="style2"></div></td>
<td> </td>
<td> <div align="left"></div></td>
<td> </td>
</tr>
<tr>
<td></td>
<td class="style4"><a href="javascript: history.go(-1)" target="_self">Terug</a></td>
<td></td>
<td><div align="left">
<input type="submit" value="Verstuur" name="submit">
<input type="reset" name="Reset" value="Wissen">
</div></td>
<td> </td>
</tr>
</table>
</form>
<?
}
?>
Het domein en de hosting zijn onlangs verhuist naar een andere server .
Deze Server is op alle fronten hetzelfde, maar ondersteund alleen geen MS-FrontPage meer.
PHP scripten zouden gewoon moeten werken.
Tja, heb ik wat aan///het werkt niet meer.
Heb het script op twee andere domeinen geprobeerd, op de 1 werkt het wel, op de ander ook niet.
Waar zit 'm dit in dat bovenstaand script op sommige servers wel, en blijkbaar op sommige servers niet werkt?
En haal de @'s bij fopen en mail weg...
Dit zijn de errors:
Notice: Undefined index: bericht in /formulier3.php on line 26
Notice: Undefined variable: bestand_size in /formulier3.php on line 36
Notice: Use of undefined constant bijlage - assumed 'bijlage' in /formulier3.php on line 47
Notice: Use of undefined constant type - assumed 'type' in /formulier3.php on line 47
Notice: Use of undefined constant bijlage - assumed 'bijlage' in /formulier3.php on line 60
Notice: Use of undefined constant tmp_name - assumed 'tmp_name' in /formulier3.php on line 60
Notice: Use of undefined constant bijlage - assumed 'bijlage' in /formulier3.php on line 84
Notice: Use of undefined constant name - assumed 'name' in /formulier3.php on line 84
Warning: Cannot modify header information - headers already sent by (output started at /formulier3.php:26) in /formulier3.php on line 94
Zoek eerst eens al die 'constant' errors op en zet er een $ voor
Undefined index: bericht => $_POST['bericht'] bestaat niet.
Undefined variable: bestand_size => $bestand_size bestaat niet.
Use of undefined constant bijlage => De constante 'bijlage' bestaat niet.
En haal de @-jes weg, want die onderdrukken fouten.
Blijft vreemd dat het op de ene server wel werkt en op de ander niet (en ook daar heeft het altijd gewerkt).
Ik wil bovenstaande mensen in ieder geval bedanken voor de hulp.
@tjes zijn weggehaald trouwens