Contactformulier met bijlage werkt sinds een aantal weken niet meer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris

Chris

13/08/2008 15:43:00
Quote Anchor link
Beste php'ers, ik heb hier echt jullie hulp even nodig want ik heb 3 jaar lang een werkend contactformulier met bijlagemogelijkheid gehad, en van de één op de andere dag werkt het niet meer. Ik ben zelf een beginnend php'er op dit gebied dus bij deze zou ik het zeer op prijs stellen als iemand met php verstand even door de volgende code wil spitten om wellicht het probleem te achterhalen. Het formulier linkt op dit moment door naar de nietverzonden html pagina, terwijl het een aantal weken terug dus nog prima werd doorgemaild. Alvast bedankt mensen!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?  
// 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>&nbsp;</td>
  <td height="24">&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td height="24">&nbsp;</td>
  <td>&nbsp;</td>
  <td><div align="left"></div></td>
  <td>&nbsp;</td>
</tr>
<tr>
  <td width="239">&nbsp;</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">&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td><div align="left" class="style2"></div></td>
  <td>&nbsp;</td>
  <td>  <div align="left"></div></td>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
</table>
</form>
<?  
}  
?>
 
PHP hulp

PHP hulp

16/11/2024 18:51:12
 
Chris

Chris

13/08/2008 16:43:00
Quote Anchor link
Antwoord van provider op vraag waarom het ineens niet meer werkt:

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?
 
- SanThe -

- SanThe -

13/08/2008 17:14:00
Quote Anchor link
Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>

Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
 

13/08/2008 17:17:00
Quote Anchor link
En haal de @'s bij fopen en mail weg...
 
Chris

Chris

14/08/2008 14:07:00
Quote Anchor link
Bedankt zover ,maar ik krijg het formulier nog niet werkend.

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
 
Maarten Slenter

Maarten Slenter

14/08/2008 14:14:00
Quote Anchor link
Zoek eerst eens al die 'constant' errors op en zet er een $ voor
 
- SanThe -

- SanThe -

14/08/2008 14:17:00
Quote Anchor link
Ga die errors eerst maar eens wegwerken.
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.
 
Chris

Chris

14/08/2008 22:17:00
Quote Anchor link
Ik heb getracht de errors weg te werken, en ik kom een heel eind maar mijn php kennis is niet genoeg om het script weer werkend te krijgen.


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.
 
Chris

Chris

14/08/2008 22:19:00
Quote Anchor link
@tjes zijn weggehaald trouwens
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.