Formulier geeft foutmelding die ik niet kan vinden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Steven T

Steven T

01/02/2016 00:19:15
Quote Anchor link
Beste,

Onderaan vinden jullie een script.
Dit script moet een aantal stappen doorlopen om te kijken of het goed is.
Maar ergens gaat het fout en krijg ik de melding dat: "U bent uw naam, e-mailadres, adres of stickerkeuze vergeten in te vullen."

Ik heb het script met mijn verstand een aantal keren nagelopen.... Ik kan het probleem echt niet vinden.
Waar gaat het fout?

Ik hoor graag van jullie wat ik anders moet doen....

Alvast hartelijk dank voor het bekijken van het script.

Groet en wellicht voor sommige zo, slaap lekker.

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
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
<style type="text/css">
.letop {
    color: #F00;
}
</style>
<?php
//session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
 
/*******************************
*        CONTACT FORMULIER                     *
*        contactformulier.php             *
*                                                             *
*        Author: Miranda Verburg         *
*        Datum: 10 september 2010     *
*                                                             *
*        Pas het e-mail adres aan     *
*        bij $mail_ontv en upload   *
*        het naar je webserver..         *
********************************/

// E-mailadres van de ontvanger

$mail_ontv = '[email protected]' . ','; // <<<----- voer jouw e-mailadres hier in!
$mail_ontv2 = ($_POST['email']); // <<<----- Dit is het emailadres van de bestellende!

// Speciale checks voor naam en e-mailadres

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // naam controle
    if (empty($_POST['naam']))
        $naam_fout = 1;
    // e-mail controle
    if (function_exists('filter_var') && !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
            $email_fout = 1;
    // antiflood controle
    if (!empty($_SESSION['antiflood']))
    {

        $seconde = 120; // 120 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
        $tijd = time() - $_SESSION['antiflood'];
        if($tijd < $seconde)
            $antiflood =1 ;
    }
}


// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['email']) || empty($_POST['stickerkeus']) || !empty($email_fout) || empty($_POST['telefoon']) || empty($_POST['adres']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{

    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {

        if (!empty($naam_fout))
            echo '<p>Uw naam is niet ingevuld.</p>';
        elseif (!empty($email_fout))
            echo '<p>Uw e-mailadres is niet juist.</p>';
        elseif (!empty($antiflood))
            echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
        else
            echo '<p>U bent uw naam, e-mailadres, adres of stickerkeuze vergeten in te vullen.</p>';
    }


  // HTML e-mail formlier
  
    echo '  
Prijzen zijn exclusief verzend kosten van een postzegel!  '
;


  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>

<table width="600" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200"><label for="naam">Naam:</label></td>
    <td width="200"><input type="text" id="naam" name="naam" value="'
. (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /></td>
    <td width="200">&nbsp;</td>
  </tr>
  <tr>
    <td><label for="adres">Adres:<label></td>
    <td><input type="text" id="adres" name="adres" value="'
. (isset($_POST['adres']) ? htmlspecialchars($_POST['adres']) : '') . '"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><label for="postcode">Postcode:</label></td>
    <td><input type="text" id="postcode" name="postcode" value="'
. (isset($_POST['postcode']) ? htmlspecialchars($_POST['postcode']) : '') . '"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><label for="woonplaats">Woonplaats:</label></td>
    <td><input type="text" id="woonplaats" name="woonplaats" value="'
. (isset($_POST['woonplaats']) ? htmlspecialchars($_POST['woonplaats']) : '') . '"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><label for="email">E-mail:</label></td>
    <td><input type="text" id="email" name="email" value="'
. (isset($_POST['email']) ? htmlspecialchars($_POST['email']) : '') . '" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><label for="telefoon">Telefoon:</label></td>
    <td><input type="text" id="telefoon" name="telefoon" value="'
. (isset($_POST['telefoon']) ? htmlspecialchars($_POST['telefoon']) : '') . '" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><div align="center">MEET MY BIKE</div></td>
    <td><div align="center">
      <p>MEET MY BIKE <br />
        SINCE  2014 </p>
    </div></td>
    <td><div align="center">MEET MY BIKE<br />
    JOIN OUR RIDE-OUTS</div></td>
  </tr>
  <tr>
    <td><div align="center"><img src="http://meetmybike.nl/wp-content/uploads/2016/01/Meet-My-Bike-Logo-Sticker-Clean.jpg" alt="" width="126" height="105" /></div></td>
    <td><div align="center"><img src="http://meetmybike.nl/wp-content/uploads/2016/01/Meet-My-Bike-Logo-Sticker-Since.jpg" alt="" width="126" height="105" /></div></td>
    <td><div align="center"><img src="http://meetmybike.nl/wp-content/uploads/2016/01/Meet-My-Bike-Logo-Sticker-01-16.jpg" alt="" width="126" height="105" /></div></td>
  </tr>
  <tr>
    <td><div align="center">5cm</div></td>
    <td><div align="center">5cm</div></td>
    <td><div align="center">5cm</div></td>
  </tr>
  <tr>
    <td><div align="center">
      <select name="aantal5c">
        <option selected="selected" value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
    <td><div align="center">
      <select name="aantal5s">
        <option selected="selected"value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
    <td><div align="center">
      <select name="aantal5joro">
        <option selected="selected" value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
  </tr>
  <tr>
    <td><div align="center">10cm</div></td>
    <td><div align="center">10cm</div></td>
    <td><div align="center">10cm</div></td>
  </tr>
  <tr>
    <td><div align="center">
      <select name="aantal10c">
        <option selected="selected" value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
    <td><div align="center">
      <select name="aantal10s">
        <option selected="selected"value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
    <td><div align="center">
      <select name="aantal10joro">
        <option selected="selected" value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
  </tr>
  <tr>
    <td><div align="center">15cm</div></td>
    <td><div align="center">15cm</div></td>
    <td><div align="center">15cm</div></td>
  </tr>
  <tr>
    <td><div align="center">
      <select name="aantal15c">
        <option selected="selected" value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
    <td><div align="center">
      <select name="aantal15s">
        <option selected="selected"value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
    <td><div align="center">
      <select name="aantal15joro">
        <option selected="selected" value=" ">Selecteer aantal</option>
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="meer dan 5">5+</option>
      </select>
    </div></td>
  </tr>
</table>
      <input type="submit" name="submit" value=" Versturen " />
  </p>
  </form>'
;
}

// versturen naar
else
{      
  // set datum
  $datum = date('d/m/Y H:i:s');
    
  $inhoud_mail = "===================================================\n";
  $inhoud_mail .= "BAM!!! " . htmlspecialchars($_POST['naam']) ." wilt Stickers bestellen! \n" /*. $_SERVER['HTTP_HOST'] . ""*/;
  $inhoud_mail .= "===================================================\n\n";
  
  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
  $inhoud_mail .= "Postcode:" .htmlspecialchars($_POST['postcode']) ."\n";
  $inhoud_mail .= "Woonplaats:" .htmlspecialchars($_POST['woonplaat']) ."\n";
  $inhoud_mail .= "Mail: " . htmlspecialchars($_POST['email']) . "\n";
  $inhoud_mail .= "Telefoon: " . htmlspecialchars($_POST['telefoon']) . "\n";
  
  $inhoud_mail .= "Stickers: " .htmlspecialchars($_POST['']) . "\n";
    
  $inhoud_mail .= "Verstuurd op " . $datum . " \n\n";
    
  $inhoud_mail .= "===================================================\n\n";
  
  // -------------------- via het IP adres " . $_SERVER['REMOTE_ADDR'] . "
  // spambot protectie
  // ------
  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
  // ------

  
  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['email'] . '>';
  
  $headers = stripslashes($headers);
  $headers = str_replace('\n', '', $headers); // Verwijder \n
  $headers = str_replace('\r', '', $headers); // Verwijder \r
  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
  
  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
  
  if (mail($mail_ontv, 'Bestelling Stickers', $inhoud_mail, $headers))
  
  
    $datum = date('d/m/Y H:i:s');
    
  $inhoud_mail2 = "===================================================\n";
  $inhoud_mail2 .= "De bestelling is geplaatst! \n" /*. $_SERVER['HTTP_HOST'] . ""*/;
  $inhoud_mail2 .= "===================================================\n\n";
  
  $inhoud_mail2 .= "Beste " . htmlspecialchars($_POST['naam']) .",\n";
  $inhoud_mail2 .= "Hartelijk bedankt voor de bestelling.\n";
  $inhoud_mail2 .= "Graag vragen we om onderstaande informatie even te controleren.\n";
  $inhoud_mail2 .= "Mochten er fouten in zitten kun je contact opnemen met [email protected].\n\n";
  
  $inhoud_mail2 .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
  $inhoud_mail2 .= "E-mail adres: " . htmlspecialchars($_POST['email']) . "\n";
  $inhoud_mail2 .= "Telefoonnummer: " . htmlspecialchars($_POST['telefoonnummer']) . "\n";
  $inhoud_mail2 .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
  $inhoud_mail2 .= "Stickers: " .htmlspecialchars($_POST['']) . "\n";

  
  $inhoud_mail2 .= "Kloppen alle gegevens? Dan mag je op volgend rekeningnummer het bedrag van € 40,95 overmaken:\n";
  $inhoud_mail2 .= "  tnv   Almere ovv Hoodie en je naam.\n\n";  
  $inhoud_mail2 .= "Met vriendelijke groet,\n";
  $inhoud_mail2 .= " \n";
  $inhoud_mail2 .= "Meet My Bike\n\n";
  
    $inhoud_mail2 .= "Verstuurd op " . $datum . " \n\n";

    
  $inhoud_mail2 .= "===================================================\n\n";
  
  // -------------------- via het IP adres " . $_SERVER['REMOTE_ADDR'] . "
  // spambot protectie
  // ------
  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
  // ------

  
  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['email'] . '>';
  
  $headers = stripslashes($headers);
  $headers = str_replace('\n', '', $headers); // Verwijder \n
  $headers = str_replace('\r', '', $headers); // Verwijder \r
  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
  
  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
  
  if (mail($mail_ontv2, 'Bestelling Hoodie', $inhoud_mail2, $headers))
 
{

      // zorg ervoor dat dezelfde persoon niet kan spammen
      $_SESSION['antiflood'] = time();
      
      echo '<h1>Je bestelling is verzonden</h1>
      
      <p>Bedankt voor het bestellen van je Stickers!! We zullen zo spoedig mogelijk contact met je opnemen.</p>'
;
  }

  else
  {
      echo '<h1>Helaas, je bestelling is niet verzonden</h1>
      
      <p><b>Onze excuses.</b> Je bestelling kon om technische redenen niet verzonden worden.</p>'
;
  }
}

?>
Gewijzigd op 01/02/2016 00:20:01 door Steven T
 
PHP hulp

PHP hulp

27/04/2024 19:20:58
 
Ben van Velzen

Ben van Velzen

01/02/2016 00:23:37
Quote Anchor link
Zo te zien heb je geen veld genaamd "stickerkeus".
 
Steven T

Steven T

01/02/2016 00:28:45
Quote Anchor link
Ben van Velzen op 01/02/2016 00:23:37:
Zo te zien heb je geen veld genaamd "stickerkeus".


Wauw.... Soms is het te makkelijk..... Zit er al te lang aan denk ik.....

Dat was inderdaad de fout. Deze controle er maar uitgehaald.

Nu er nog voor zorgen dat de keuzes ook daadwerkelijk doorkomen.

Hartelijk dank voor de snelle reactie!!!
 
Ben van Velzen

Ben van Velzen

01/02/2016 00:32:21
Quote Anchor link
De stappen die ik gevolgd heb, voor als je geinteresseerd bent:
1. Kijk wat de melding oplevert
2. Volg variabelen die niet direct extern zijn tot externe variabelen
3. Vergelijk de externe variabelen met het formulier dat binnen komt

Als je niet even de HTML kunt vergelijken kun je ook altijd print_r of var_dump op $_POST doen.
 
Steven T

Steven T

01/02/2016 00:41:47
Quote Anchor link
Dat is ook opzich wel de meest logische manier.
En zelf dacht ik dat ik het ook zo gedaan had en ook die stickerkeuze erin had.
Maar nog niet verder gekoppeld blijkbaar.....
 
Ben van Velzen

Ben van Velzen

01/02/2016 00:44:25
Quote Anchor link
Correct, een simpele ctrl+f op "stickerkeus" gaf maar 1 resultaat, en dat maakt het dan al vrij snel duidelijk. :)
 
Steven T

Steven T

01/02/2016 00:46:26
Quote Anchor link
Hahaha dat zeg ik xD Het is echt bedtijd haha.....
Denk dat ik later nog wel een ander topic ga openen om mn keuzes door te krijgen.
Want dat, dat gaat denk ik mij een stapje te ver. Maar hopelijk ook niet.

Fijne avond! En dank je wel voor de uitleg en de oplossing uiteraard!
 
Ivo P

Ivo P

01/02/2016 11:15:20
Quote Anchor link
vragen (los van je probleem)

op regel 7 staat session-start. Je hebt door dat je inmiddels iets erboven hebt staan?

regel 23: je gebruikt $_POST, maar pas later staat een if($_SERVER['REQUEST_METHOD'] == 'POST') (meermaals)
Je zou hier dus een warning moeten krijgen als je dit aanroept met GET.

Je controleert nergens of dit veld een mailadres (eentje) bevat. Maar je stuurt er wel een mail heen.
Dat betekent dus dat iemand daar ook 2 of 100 adressen in kan zetten. Of enters opneemt en dan fijn zijn eigen headers kan toevoegen, subject overrulen en fijn spam gaat versturen op jouw rekening.

regel 292: mist daar niet een { ?


Wat levert de actie rond regel 337 op?
Je past daar $_POST['onderwerp'] aan, mi. bad-practice want dat zou puur de invoer moeten bevatten, maar dat wordt nergens meer gebruikt.

En de anti-flood in session:
Als je dit wilt misbruiken, dan stuur je uiteraard geen session-cookies mee, want dat run je dan niet vanaf de webpagina in een browser, maar direct vanaf de commandline.
 
Steven T

Steven T

01/02/2016 20:32:03
Quote Anchor link
Ivo P op 01/02/2016 11:15:20:
vragen (los van je probleem)

op regel 7 staat session-start. Je hebt door dat je inmiddels iets erboven hebt staan?

regel 23: je gebruikt $_POST, maar pas later staat een if($_SERVER['REQUEST_METHOD'] == 'POST') (meermaals)
Je zou hier dus een warning moeten krijgen als je dit aanroept met GET.

Je controleert nergens of dit veld een mailadres (eentje) bevat. Maar je stuurt er wel een mail heen.
Dat betekent dus dat iemand daar ook 2 of 100 adressen in kan zetten. Of enters opneemt en dan fijn zijn eigen headers kan toevoegen, subject overrulen en fijn spam gaat versturen op jouw rekening.

regel 292: mist daar niet een { ?


Wat levert de actie rond regel 337 op?
Je past daar $_POST['onderwerp'] aan, mi. bad-practice want dat zou puur de invoer moeten bevatten, maar dat wordt nergens meer gebruikt.

En de anti-flood in session:
Als je dit wilt misbruiken, dan stuur je uiteraard geen session-cookies mee, want dat run je dan niet vanaf de webpagina in een browser, maar direct vanaf de commandline.


Ivo,

Als jij :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<style type="text/css">
.letop {
    color: #F00;
}
</style>


Bedoeld, dit kwam van een ander script. En is alleen maar een CSS wat in mijn inziens geen kwaad kan dat die daarboven staat.
In het huidige script wel weg gehaald, heeft geen toegevoegde waarde (thanks).

Op al je ander vragen..... Ik gebruik dit formulier al een langere tijd en kan niet de inhoud overal plaatsen wat er staat.
Ik kan het redelijk aanpassen (en geef toe) maar heb geen flauw idee wat het allemaal doet.
Het enige dat ik weet, is dat het steeds werkt en ik er nog geen spam op heb gehad.
Mocht je een manier weten om deze spam eruit te filteren en hem in mijn code kan zetten, dan ben ik je daar dankbaar voor.

Ook verwijs je naar regel 337:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes


daarboven (regel 331) gebeurd hetzelfde alleen dan anders. Dit klopt dan wel?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
  $headers = str_replace('\n', '', $headers); // Verwijder \n
  $headers = str_replace('\r', '', $headers); // Verwijder \r
  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes


Je hebt het ook over het misbruiken van de anti-flood in session. De site is te klein om maar ook een beetje op te vallen en niet aantrekkelijk voor een enkele misbruik van.
Wellicht heb je een punt maar voor het gebruik van de site vindt ik dit te verwaarlozen.

Ik hoop nog wat van je te horen!

Steven
 
- Ariën  -
Beheerder

- Ariën -

01/02/2016 20:59:00
Quote Anchor link
Als er CSS, HTML of andere vorm van output (zelfs een spatie of een enter) voor een session_start() staat, zal dat betekenen dat je sessies niet uitgevoerd kunnen worden. Altijd gaan er headers aan een request van een pagina vooraf, deze beschrijven de pagina en plaatsen bijv. cookies.

Bij het initialiseren van de sessions met session_start(); wordt er namelijk een PHPSESSID-cookie aangemaakt. Daar kan geen HTML aan vooraf gaan. Net als wij mensen elkaar bij kennismaking eerst begroeten en vervolgens een hand geven. Daarna volgt een gesprek.
 
Steven T

Steven T

01/02/2016 21:04:45
Quote Anchor link
Dat is een duidelijk verhaal.
Wanneer ik alleen de // voor session weg haal, struikelt mn pagina over de volgende meldingen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: session_start(): Cannot send session cookie  headers already sent by (output started at ..snip../admin-init.php:30) in ..snip../order-stickers.php on line 2


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: session_start(): Cannot send session cache limiter  headers already sent (output started at ..snip../admin-init.php:30) in ..snip../order-stickers.php on line 2


Volgens mij was het daarom een reden dat ik het uit had gezet. De blokkade (antiflood) werkt echter wel.
Met //session....
 
- Ariën  -
Beheerder

- Ariën -

01/02/2016 21:13:35
Quote Anchor link
Dan heb je hier in admin-init.php:30 (lijn 30 dus) toch ergens een stukje output staan.
Dat dat mag dus niet ;-)
 
Steven T

Steven T

01/02/2016 21:24:26
Quote Anchor link
Dat is grappig..... Aangezien ik daar niks mee heb gedaan hahaha....

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
add_action( 'init', 'woo_version_init', 10 );

function woo_version () {
    $data = wooframework_get_theme_version_data();
    echo "\n<!-- Theme version -->\n";
    if ( isset( $data['is_child'] ) && true == $data['is_child'] ) echo '<meta name="generator" content="'. esc_attr( $data['child_theme_name'] . ' ' . $data['child_theme_version'] ) . '" />' ."\n";
    echo '<meta name="generator" content="'. esc_attr( $data['theme_name'] . ' ' . $data['theme_version'] ) . '" />' ."\n";
    echo '<meta name="generator" content="WooFramework '. esc_attr( $data['framework_version'] ) .'" />' ."\n";
} // End woo_version()


regel 30:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    echo '<meta name="generator" content="'. esc_attr( $data['theme_name'] . ' ' . $data['theme_version'] ) . '" />' ."\n";


Overigens is mijn hele binnenhalen van de bestelling 1 groot drama hahaha.... Maar het betreft nog steeds hetzelfde formulier.
Mag ik dat hier ook plaatsen of voor de goede orde een nieuw topic aanmaken? @-Ariën-
 
- Ariën  -
Beheerder

- Ariën -

01/02/2016 22:31:52
Quote Anchor link
Als het een volledig ander probleem is, dan raad ik aan om daar een nieuw topic over te starten.
 
Steven T

Steven T

01/02/2016 22:33:21
Quote Anchor link
Top! Ga ik doen! Dit topic is voor mij gesloten. Alles komt binnen :)
Bedankt voor alle reacties en hulp!!
 
Ivo P

Ivo P

02/02/2016 10:25:56
Quote Anchor link
$mail_ontv2 = ($_POST['email']);

Zou ik verplaatsen na de request-method if()

en dan vervangen door

$mail_ontv2 = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

http://php.net/filter-input
en
http://php.net/manual/en/filter.filters.sanitize.php

Als iemand een van de velden als emailadres, subject of een andere header weet aan te passen met onder andere enters, dan kan hij mogelijk de hele email overnemen en zelf een tekst bepalen en ook de ontvangers.
Dus waarschijnlijk zie je dan zelf niet eens de mails binnen komen.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/02/2016 13:54:00
Quote Anchor link
- Ariën - op 01/02/2016 20:59:00:
Als er CSS, HTML of andere vorm van output (zelfs een spatie of een enter) voor een session_start() staat, zal dat betekenen dat je sessies niet uitgevoerd kunnen worden. Altijd gaan er headers aan een request van een pagina vooraf, deze beschrijven de pagina en plaatsen bijv. cookies.

Dit is niet per definitie zo, in sommige installaties/pakketten staat output buffering aan, ook al is dit niet de standaard instelling.

Als je uitgaat van default instellingen kom je nogal eens bedrogen uit.
 



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.