Webshop met MySQL probleem
Maar als ik een product selecteer en ik ga naar de volgend pagina dan neemt tie niks mee.
hier een voor beeld link;
http://www.dj-maxis.com/webshop/form.php
hier het MySQL script;
CREATE TABLE producten (
id int(11) NOT NULL auto_increment,
artikelnaam varchar(80) NOT NULL,
bestelnummer varchar(40) NOT NULL,
prijs float(10,2) DEFAULT '0.00' NOT NULL,
verzendkosten float(10,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY (id),
UNIQUE id_2 (id),
KEY id (id)
);
CREATE TABLE nieuwsbrief (
id int(11) NOT NULL auto_increment,
datum DATE NOT NULL,
naam varchar(40) NOT NULL,
email varchar(40) NOT NULL,
ipadres varchar(40) NOT NULL,
PRIMARY KEY (id),
UNIQUE id_2 (id),
KEY id (id)
);
Mijn vraag is moet ik hier wat aan veranderren of moet ik er nog een script bij doen die iets ontvangt ofzo iets?
Ik weet het niet weet een van jullie hoe dat kan?
Alvast bedankt
Deacon
kun je misschien wat bron code posten, wat eigenlijk heeft deze vraag niet echt iets met je database uit te staan vooral de pagina waar je naar toe gestuurd word als je op de ga door button hebt geklikt
Maar goed hier heb je de helle script het is een alles in een 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
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
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
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
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
<?php
session_start();
header("Cache-control: private"); # -> voorkomt dat je javascript:history.go(-1) niet meer werkt in IE
ini_set('show_errors', 'on'); # -> melden dat we de errors willen zien
error_reporting(E_ALL); # -> melden dat we ALLE errors willen zien
include("config.php"); # -> aanmaken (zie boven)
mysql_connect($hostname,$username,$password) or die ("Kan geen verbinding maken met de database...");
mysql_select_db($database);
?>
<html>
<head>
<title>shop</title>
<script language="JavaScript" type="text/javascript">
<!--
function dis_sub(formnaam) {
document.forms[formnaam].subknop.disabled = true;
}
function decrease_value(nummer) {
veld_id = "product["+nummer+"]";
veld = document.getElementById(veld_id);
if (veld.value > 0) {
veld.value--;
veld.focus();
veld.select();
}
}
function increase_value(nummer) {
veld_id = "product["+nummer+"]";
veld = document.getElementById(veld_id);
if (veld.value < 99) {
veld.value++;
veld.focus();
veld.select();
}
}
function KeyCheck(myfield,e) {
var keycode;
if (window.event) {
keycode = window.event.keyCode;
} else if (e) {
keycode = e.which;
} else {
return true;
}
if (((keycode>47) && (keycode<58) ) || (keycode==8)) {
return true;
} else {
return false;
}
}
</script>
<style type="text/css">
<!--
/* maak er wat moois van */
//-->
</style>
<link href="webdesign.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (!isset($_POST['action'])) { # -> voorkomen dat je een undefined index krijgt
$_POST['action'] = "";
}
if ($_POST['action'] == "verstuur") {
#---------- controleer op fouten
if (!isset($_POST['aanhef'])) { # -> voorkomen dat je een undefined index krijgt
$_POST['aanhef'] = "";
}
if (!isset($_POST['nieuwsbrief'])) { # -> voorkomen dat je een undefined index krijgt (checkbox)
$_POST['nieuwsbrief'] = "";
}
if (!isset($_POST['betaling'])) { # -> voorkomen dat je een undefined index krijgt (radiobutton)
$_POST['betaling'] = "";
}
$foutoverzicht = "<h1>Bestelling niet geplaatst!</h1>\nUw bestelling bevat de volgende fouten:\n<ul>\n";
if ($_POST['naam'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen naam ingevuld</li>\n";
}
if ($_POST['adres'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen adres ingevuld</li>\n";
}
if ($_POST['postcode'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen postcode ingevuld</li>\n";
}
if ($_POST['woonplaats'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen plaats ingevuld</li>\n";
}
if ($_POST['telefoon'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen telefoonnummer ingevuld</li>\n";
} elseif (!ereg("^[0-9 ()+-]+$", $_POST['telefoon'])) {
$correct = "no";
$foutoverzicht .= "<li>U heeft een incorrect telefoonnummer ingevuld</li>\n";
}
if (($_POST['telefax'] != "") && (!ereg("^[0-9 ()+-]+$", $_POST['telefax']))) {
$correct = "no";
$foutoverzicht .= "<li>U heeft een incorrect faxnummer ingevuld</li>\n";
}
if (($_POST['nieuwsbrief'] == "ja") && ($_POST['email'] == "")) {
$correct = "no";
$foutoverzicht .= "<li>In geval van aanmelding voor de digitale nieuwsbrief dient u een e-mail adres in te vullen</li>";
} elseif (($_POST['email'] != "") && (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_POST['email']))) {
$correct = "no";
$foutoverzicht .= "<li>U heeft een incorrect e-mail adres ingevuld</li>\n";
}
if ($_POST['betaling'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft niet aangegeven op welke wijze u wenst te betalen</li>\n";
}
$foutoverzicht .= "</ul>\n<a href=\"javascript:history.go(-1)\">Klik hier om terug te keren naar het bestelformulier</a>\n";
#----------
#---------- correct? -> mail versturen
if (!isset($correct)) { # -> voorkomen dat je een undefined variable krijgt
$correct = "";
}
if ($correct != "no") {
#---------- variabelen
$onze_naam = "**************"; # <- vul hier je eigen naam in
$onze_email = "**************"; # <- vul hier je emailadres in (daar wordt de bestelling naar verstuurd)
$onderwerp_naar_ons = "Een online bestelling van ".$_POST['aanhef']." ".$_POST['naam'];
$onderwerp_naar_besteller = "Uw bestelling op de website van ".$onze_naam;
$datum = date("d-m-Y H:i:s");
$datum_kort = date("d-m-Y");
if (gethostbyaddr($_SERVER['REMOTE_ADDR']) == "") {
$ipadres = "niet beschikbaar";
} else {
$ipadres = gethostbyaddr($_SERVER['REMOTE_ADDR']);
}
#-----------
#----------- gegevens van de besteller
$gegevens_besteller = "
<table cellpadding=\"0\" cellspacing=\"3\" border=\"0\">
<tr>
<td>Naam:</td>
<td>".$_POST['aanhef']." ".$_POST['naam']."</td>
</tr>
<tr>
<td>Adres:</td>
<td>".$_POST['adres']."<br>".$_POST['postcode']." ".$_POST['woonplaats']."</td>
</tr>
<tr>
<td>Telefoon:</td>
<td>".$_POST['telefoon']."</td>
</tr>
<tr>
<td>Telefax:</td>
<td>".$_POST['telefax']." </td>
</tr>
<tr>
<td>E-mail:</td>
<td><a href=\"mailto:".$_POST['email']."\">".$_POST['email']."</a> </td>
</tr>
<tr>
<td>Aanmelding nieuwsbrief:</td>
<td>".$_POST['nieuwsbrief']." </td>
</tr>
<tr>
<td>Bijzonderheden:</td>
<td>".$_POST['bijzonderheden']." </td>
</tr>
</table>";
#-----------
#----------- stylesheet van de e-mail -> zelf maken
$stylesheet_email = "<style type=\"text/css\">\n/* maak er wat moois van */\n</style>\n";
#-----------
#----------- header van de mail naar ons
if ($_POST['email'] != "") {
$adres_naar_ons = $_POST['email'];
} else {
$adres_naar_ons = $onze_email;
}
$header_naar_ons = "From: ".$_POST['naam']."<".$adres_naar_ons.">\n";
$header_naar_ons .= "Sender: ".$_POST['naam']."<".$adres_naar_ons.">\n";
$header_naar_ons .= "Reply-To: ".$_POST['naam']."<".$adres_naar_ons.">\n";
$header_naar_ons .= "MIME-Version: 1.0\n";
$header_naar_ons .= "Content-Type: text/html; charset=iso-8859-1\n";
$header_naar_ons .= "Return-Path: <".$adres_naar_ons.">";
#-----------
#----------- de mail naar ons
$mail_naar_ons = "
<html>
<head>
<META http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<META content=\"text/html; charset=iso-8859-1\" http-equiv=\"Content-Type\">
<title>".$onderwerp_naar_ons."</title>".$stylesheet_email."
</head>
<body>
<br>De volgende bestelling is op <strong>".$datum."</strong> binnengekomen via de website:
<br><br>".$_SESSION['bestelling']."Gegevens van de besteller:<br><br>".$gegevens_besteller."
Ip-adres: <strong>".$ipadres."</strong><br><br>
<strong>Het totaalbedrag van ".$_SESSION['totaal']." ".$_POST['betaling']."</strong>
</body>
</html>";
#----------
#----------- header van de mail naar de besteller
$header_naar_besteller = "From: ".$onze_naam."<".$onze_email.">\n";
$header_naar_besteller .= "Sender: ".$onze_naam."<".$onze_email.">\n";
$header_naar_besteller .= "Reply-To: ".$onze_naam."<".$onze_email.">\n";
$header_naar_besteller .= "MIME-Version: 1.0\n";
$header_naar_besteller .= "Content-Type: text/html; charset=iso-8859-1\n";
$header_naar_besteller .= "Return-Path: <".$onze_email.">";
#-----------
#----------- de mail naar de besteller
$mail_naar_besteller = "
<html>
<head>
<META http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<META content=\"text/html; charset=iso-8859-1\" http-equiv=\"Content-Type\">
<title>".$onderwerp_naar_besteller."</title>".$stylesheet_email."
</head>
<body>
<br>Geachte ".$_POST['aanhef']." ".$_POST['naam'].",<br><br>
Op ".$datum_kort." heeft u de volgende bestelling geplaatst op de website van ".$onze_naam.":
<br><br>".$_SESSION['bestelling']."Uw gegevens:<br><br>".$gegevens_besteller."
<strong>Het totaalbedrag van ".$_SESSION['totaal']." ".$_POST['betaling']."</strong><br><br>
Uw bestelling is in behandeling!<br><br>
Mochten er onjuiste gegevens in uw bestelling voorkomen, neem dan contact met ons op.<br><br>
Met vriendelijke groet,<br><br>".$onze_naam."
</body>
</html>";
#----------
#---------- aanmeldingen nieuwsbrief opslaan
if ($_POST['nieuwsbrief'] == "ja") {
$query_nb = "INSERT INTO nieuwsbrief (datum,naam,email,ipadres) VALUES (NOW(),'$naam','$email','$ipadres')";
mysql_query($query_nb) or die (mysql_error());
}
#----------
#---------- daadwerkelijk versturen
mail($onze_email,$onderwerp_naar_ons,$mail_naar_ons,$header_naar_ons);
if ($_POST['email'] != "") { # -> eventuele autoresponder
mail($_POST['email'],$onderwerp_naar_besteller,$mail_naar_besteller,$header_naar_besteller);
}
echo "<meta http-equiv=\"refresh\" content=\"5;URL=shop.php\">\n";
echo "<h1>Bestelling voltooid!</h1>\n";
echo "Bedankt voor uw bestelling ".$_POST['aanhef']." ".$_POST['naam'].", u ontvangt zo spoedig mogelijk bericht!<br><br>\n";
echo "U wordt nu teruggebracht naar de startpagina...";
session_destroy(); # -> sessie verwijderen
#----------
} else { # -> niet correct NAW ingevuld -> foutoverzicht
echo $foutoverzicht;
}
} elseif ($_POST['action'] == "bevestig") {
?>
<form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="POST" name="shop_c" onSubmit="javascript:dis_sub(shop_c);">
<input type="hidden" name="action" value="verstuur">
<h1 class="big">Stap 3 - Vul uw gegevens in</h1>
Let op: alle velden gemarkeerd met * zijn verplicht.<br><br>
<table cellspacing="3" cellpadding="0" border="0">
<tr>
<td>Aanhef:</td>
<td><input type="radio" name="aanhef" value="Meneer"> Dhr. <input type="radio" name="aanhef" value="Mevrouw"> Mevr.</td>
<td>Naam*:</td>
<td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Adres*:</td>
<td><input type="text" name="adres"></td>
<td colspan="2"></td>
</tr>
<tr>
<td>Postcode*:</td>
<td><input type="text" name="postcode"></td>
<td>Woonplaats*:</td>
<td><input type="text" name="woonplaats"></td>
</tr>
<tr>
<td>Telefoon*:</td>
<td><input type="text" name="telefoon"></td>
<td rowspan="3" style="vertical-align:top;padding-top:4px;">Bijzonderheden:</td>
<td rowspan="3"><textarea rows="6" name="bijzonderheden" style="height:72px;"></textarea></td>
</tr>
<tr>
<td>Telefax:</td>
<td><input type="text" name="telefax"></td>
</tr>
<tr>
<td>E-mail adres:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="4"><strong>Het totaalbedrag van <?php echo $totaal; ?> :</strong><br>
<input type="radio" name="betaling" value="wordt overgemaakt op girorekening ****** t.n.v. ****** te ******."> Maak ik over op uw girorekening <strong>******</strong> t.n.v. ****** te ******.<br>
<input type="radio" name="betaling" value="wordt voldaan via een factuur. Let op: betaling dient te geschieden binnen 14 dagen na ontvangst."> Wil ik graag via een factuur voldoen. <strong>Let op: betaling dient te geschieden binnen ** dagen na ontvangst.</strong></td>
<!-- zo maar twee opties - hier kan je mee doen wat je zelf wilt ;-) //-->
</tr>
<tr>
<td colspan="4"><input type="checkbox" name="nieuwsbrief" value="ja"> Meld mij aan voor uw digitale nieuwsbrief</td>
</tr>
<tr>
<td colspan="4" align="center"><input type="reset" value="« Leeg de velden"> <input type="submit" value="Plaats bestelling »" name="subknop"></td>
</tr>
</table>
</form><br>
Wilt u uw bestelling wijzigen, <a href="javascript:history.go(-2)">klik dan hier</a>.
<?php
} elseif ($_POST['action'] == "selecteer") {
$i = 1;
$totaal_aantal_a = ""; # -> begin leeg op te voorkomen dat je een undefined variable krijgt
foreach ($_POST['product'] as $value) {
$totaal_aantal_a = $totaal_aantal_a+$value;
$i++;
}
if ($totaal_aantal_a != "0") { # -> akkoord: product(en) geselecteerd -> naam invullen
?>
<form action=" <? echo $_SERVER['PHP_SELF']; ?> " method="POST" name="shop_b" onSubmit="javascript:dis_sub(shop_b);">
<input type="hidden" name="action" value="bevestig">
<?php
#----------- de tabelheader
$_SESSION['bestelling'] = "<table cellspacing=\"3\" cellpadding=\"0\" border=\"0\">\n"; # -> bestelling sessievar maken om in volgende formulier te gebruiken
$_SESSION['bestelling'] .= "<tr>\n";
$_SESSION['bestelling'] .= "<td>Artikelnaam</td>\n";
$_SESSION['bestelling'] .= "<td>Prijs</td>\n";
$_SESSION['bestelling'] .= "<td>Aantal</td>\n";
$_SESSION['bestelling'] .= "<td>Verzendkosten</td>\n";
$_SESSION['bestelling'] .= "<td>Totaal</td>\n";
$_SESSION['bestelling'] .= "</tr>\n";
#-----------
#----------- de tabelrijen
$i = 1;
$totaal_aantal_b = ""; # -> begin leeg op te voorkomen dat je een undefined variable krijgt
$totaal_verzendkosten = "";
$totaal = "";
foreach ($_POST['product'] as $value) {
if ($value != "0") {
$query_bestelling = mysql_query ("SELECT * FROM producten WHERE id = $i");
while ($row = mysql_fetch_array ($query_bestelling)) {
#----------- subtotalen
$totaal_aantal_b = $totaal_aantal_b+$value;
$verzendkosten = $value*$row['verzendkosten'];
$subtotaal = ($value*$row['prijs'])+$verzendkosten;
$totaal_verzendkosten = $totaal_verzendkosten+$verzendkosten;
$totaal = $totaal+$subtotaal;
#-----------
#----------- notatie subtotalen
$row['prijs'] = "€".number_format($row['prijs'], 2, ',', ',');
$verzendkosten = "€".number_format($verzendkosten, 2, ',', ',');
$subtotaal = "€".number_format($subtotaal, 2, ',', ',');
#-----------
#----------- rijen genereren
$_SESSION['bestelling'] .= "<tr>\n<td>(".$row['bestelnummer'].") ".$row['artikelnaam']."</td>\n";
$_SESSION['bestelling'] .= "<td>".$row['prijs']."</td>\n";
$_SESSION['bestelling'] .= "<td>".$value."</td>\n";
$_SESSION['bestelling'] .= "<td>".$verzendkosten."</td>\n";
$_SESSION['bestelling'] .= "<td>".$subtotaal."</td>\n</tr>\n";
#-----------
}
}
$i++;
}
#-----------
#----------- totalen
$totaal_verzendkosten = "€".number_format($totaal_verzendkosten, 2, ',', ',');
$totaal = "€".number_format($totaal, 2, ',', ',');
$_SESSION['totaal'] = $totaal; # -> totaalbedrag sessievar maken om in volgende formulier te gebruiken
#-----------
#----------- tabeleinde schrijven
$_SESSION['bestelling'] .= "<tr>\n";
$_SESSION['bestelling'] .= "<td></td>\n";
$_SESSION['bestelling'] .= "<td></td>\n";
$_SESSION['bestelling'] .= "<td>".$totaal_aantal_b."</td>\n";
$_SESSION['bestelling'] .= "<td>".$totaal_verzendkosten."</td>\n";
$_SESSION['bestelling'] .= "<td>".$totaal."</td>\n";
$_SESSION['bestelling'] .= "</tr>\n";
$_SESSION['bestelling'] .= "</table>\n";
#-----------
?>
<h1 class="big">Stap 2 - Controleer uw bestelling</h1>
U heeft het/de volgende product(en) op uw bestellijst gezet:<br><br>
<?php
#----------- echo de hele tabel
echo $_SESSION['bestelling']."<br>";
#-----------
?>
Wilt u uw bestelling wijzigen, <a href="javascript:history.go(-1)">klik dan hier</a>.<br><br>
Is de bestellijst correct?
Ga dan door naar <a href="javascript:document.forms['shop_b'].submit();">stap drie</a>.
</form>
<?php
} else { # -> geen product(en) geselecteerd -> fout!
?>
<h1 class="big">U heeft geen product(en) geselecteerd!</h1>
<a href="javascript:history.go(-1)">Ga terug en maak uw selectie</a>
<?php
}
} else { # -> de eerste 'pagina'
?>
<h1 class="big">Stap 1 - Maak uw selectie</h1>
<h1 class="big">Maak een keuzen </h1>
<form action=" <? echo $_SERVER['PHP_SELF'] ?> " method="POST" name="shop_a" onSubmit="javascript:dis_sub(shop_a);">
<input type="hidden" name="action" value="selecteer">
<h2 class="big">Onze collectie</h2>
<table cellspacing="3" cellpadding="0" border="0">
<tr>
<td>Artikelnaam</td>
<td>Prijs</td>
<td>Aantal</td>
</tr>
<?php
#---------- schrijf de rijen
$query_overzicht = mysql_query ("SELECT * FROM producten ORDER BY id ASC");
while ($row = mysql_fetch_array ($query_overzicht)) {
$row['prijs'] = "€".number_format($row['prijs'], 2, ',', ',');
echo ("<tr>\n<td class=\"bestellijst\">(".$row['bestelnummer'].") ".$row['artikelnaam']."</td>\n");
echo ("<td class=\"bestellijst\">".$row['prijs']."</td>\n");
echo ("<td class=\"bestellijst\"><select name=\"product[".$row['id']."]\" style=\"width:45px;\">\n");
echo ("<option value=\"0\" selected>0</option>\n");
echo ("<option value=\"1\">1</option>\n");
echo ("<option value=\"2\">2</option>\n");
echo ("<option value=\"3\">3</option>\n");
echo ("<option value=\"4\">4</option>\n");
echo ("<option value=\"5\">5</option>\n");
echo ("<option value=\"6\">6</option>\n");
echo ("<option value=\"7\">7</option>\n");
echo ("<option value=\"8\">8</option>\n");
echo ("<option value=\"9\">9</option>\n");
echo ("<option value=\"10\">10</option>\n");
echo ("</select>\n</td>\n</tr>\n");
}
#----------
?>
<tr>
<td colspan="3" align="center"><input type="reset" value="« Leeg de velden"> <input type="submit" value="Ga door" href="javascript:document.forms['shop_a'].submit();" name="subknop"></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
session_start();
header("Cache-control: private"); # -> voorkomt dat je javascript:history.go(-1) niet meer werkt in IE
ini_set('show_errors', 'on'); # -> melden dat we de errors willen zien
error_reporting(E_ALL); # -> melden dat we ALLE errors willen zien
include("config.php"); # -> aanmaken (zie boven)
mysql_connect($hostname,$username,$password) or die ("Kan geen verbinding maken met de database...");
mysql_select_db($database);
?>
<html>
<head>
<title>shop</title>
<script language="JavaScript" type="text/javascript">
<!--
function dis_sub(formnaam) {
document.forms[formnaam].subknop.disabled = true;
}
function decrease_value(nummer) {
veld_id = "product["+nummer+"]";
veld = document.getElementById(veld_id);
if (veld.value > 0) {
veld.value--;
veld.focus();
veld.select();
}
}
function increase_value(nummer) {
veld_id = "product["+nummer+"]";
veld = document.getElementById(veld_id);
if (veld.value < 99) {
veld.value++;
veld.focus();
veld.select();
}
}
function KeyCheck(myfield,e) {
var keycode;
if (window.event) {
keycode = window.event.keyCode;
} else if (e) {
keycode = e.which;
} else {
return true;
}
if (((keycode>47) && (keycode<58) ) || (keycode==8)) {
return true;
} else {
return false;
}
}
</script>
<style type="text/css">
<!--
/* maak er wat moois van */
//-->
</style>
<link href="webdesign.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (!isset($_POST['action'])) { # -> voorkomen dat je een undefined index krijgt
$_POST['action'] = "";
}
if ($_POST['action'] == "verstuur") {
#---------- controleer op fouten
if (!isset($_POST['aanhef'])) { # -> voorkomen dat je een undefined index krijgt
$_POST['aanhef'] = "";
}
if (!isset($_POST['nieuwsbrief'])) { # -> voorkomen dat je een undefined index krijgt (checkbox)
$_POST['nieuwsbrief'] = "";
}
if (!isset($_POST['betaling'])) { # -> voorkomen dat je een undefined index krijgt (radiobutton)
$_POST['betaling'] = "";
}
$foutoverzicht = "<h1>Bestelling niet geplaatst!</h1>\nUw bestelling bevat de volgende fouten:\n<ul>\n";
if ($_POST['naam'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen naam ingevuld</li>\n";
}
if ($_POST['adres'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen adres ingevuld</li>\n";
}
if ($_POST['postcode'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen postcode ingevuld</li>\n";
}
if ($_POST['woonplaats'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen plaats ingevuld</li>\n";
}
if ($_POST['telefoon'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft geen telefoonnummer ingevuld</li>\n";
} elseif (!ereg("^[0-9 ()+-]+$", $_POST['telefoon'])) {
$correct = "no";
$foutoverzicht .= "<li>U heeft een incorrect telefoonnummer ingevuld</li>\n";
}
if (($_POST['telefax'] != "") && (!ereg("^[0-9 ()+-]+$", $_POST['telefax']))) {
$correct = "no";
$foutoverzicht .= "<li>U heeft een incorrect faxnummer ingevuld</li>\n";
}
if (($_POST['nieuwsbrief'] == "ja") && ($_POST['email'] == "")) {
$correct = "no";
$foutoverzicht .= "<li>In geval van aanmelding voor de digitale nieuwsbrief dient u een e-mail adres in te vullen</li>";
} elseif (($_POST['email'] != "") && (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_POST['email']))) {
$correct = "no";
$foutoverzicht .= "<li>U heeft een incorrect e-mail adres ingevuld</li>\n";
}
if ($_POST['betaling'] == "") {
$correct = "no";
$foutoverzicht .= "<li>U heeft niet aangegeven op welke wijze u wenst te betalen</li>\n";
}
$foutoverzicht .= "</ul>\n<a href=\"javascript:history.go(-1)\">Klik hier om terug te keren naar het bestelformulier</a>\n";
#----------
#---------- correct? -> mail versturen
if (!isset($correct)) { # -> voorkomen dat je een undefined variable krijgt
$correct = "";
}
if ($correct != "no") {
#---------- variabelen
$onze_naam = "**************"; # <- vul hier je eigen naam in
$onze_email = "**************"; # <- vul hier je emailadres in (daar wordt de bestelling naar verstuurd)
$onderwerp_naar_ons = "Een online bestelling van ".$_POST['aanhef']." ".$_POST['naam'];
$onderwerp_naar_besteller = "Uw bestelling op de website van ".$onze_naam;
$datum = date("d-m-Y H:i:s");
$datum_kort = date("d-m-Y");
if (gethostbyaddr($_SERVER['REMOTE_ADDR']) == "") {
$ipadres = "niet beschikbaar";
} else {
$ipadres = gethostbyaddr($_SERVER['REMOTE_ADDR']);
}
#-----------
#----------- gegevens van de besteller
$gegevens_besteller = "
<table cellpadding=\"0\" cellspacing=\"3\" border=\"0\">
<tr>
<td>Naam:</td>
<td>".$_POST['aanhef']." ".$_POST['naam']."</td>
</tr>
<tr>
<td>Adres:</td>
<td>".$_POST['adres']."<br>".$_POST['postcode']." ".$_POST['woonplaats']."</td>
</tr>
<tr>
<td>Telefoon:</td>
<td>".$_POST['telefoon']."</td>
</tr>
<tr>
<td>Telefax:</td>
<td>".$_POST['telefax']." </td>
</tr>
<tr>
<td>E-mail:</td>
<td><a href=\"mailto:".$_POST['email']."\">".$_POST['email']."</a> </td>
</tr>
<tr>
<td>Aanmelding nieuwsbrief:</td>
<td>".$_POST['nieuwsbrief']." </td>
</tr>
<tr>
<td>Bijzonderheden:</td>
<td>".$_POST['bijzonderheden']." </td>
</tr>
</table>";
#-----------
#----------- stylesheet van de e-mail -> zelf maken
$stylesheet_email = "<style type=\"text/css\">\n/* maak er wat moois van */\n</style>\n";
#-----------
#----------- header van de mail naar ons
if ($_POST['email'] != "") {
$adres_naar_ons = $_POST['email'];
} else {
$adres_naar_ons = $onze_email;
}
$header_naar_ons = "From: ".$_POST['naam']."<".$adres_naar_ons.">\n";
$header_naar_ons .= "Sender: ".$_POST['naam']."<".$adres_naar_ons.">\n";
$header_naar_ons .= "Reply-To: ".$_POST['naam']."<".$adres_naar_ons.">\n";
$header_naar_ons .= "MIME-Version: 1.0\n";
$header_naar_ons .= "Content-Type: text/html; charset=iso-8859-1\n";
$header_naar_ons .= "Return-Path: <".$adres_naar_ons.">";
#-----------
#----------- de mail naar ons
$mail_naar_ons = "
<html>
<head>
<META http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<META content=\"text/html; charset=iso-8859-1\" http-equiv=\"Content-Type\">
<title>".$onderwerp_naar_ons."</title>".$stylesheet_email."
</head>
<body>
<br>De volgende bestelling is op <strong>".$datum."</strong> binnengekomen via de website:
<br><br>".$_SESSION['bestelling']."Gegevens van de besteller:<br><br>".$gegevens_besteller."
Ip-adres: <strong>".$ipadres."</strong><br><br>
<strong>Het totaalbedrag van ".$_SESSION['totaal']." ".$_POST['betaling']."</strong>
</body>
</html>";
#----------
#----------- header van de mail naar de besteller
$header_naar_besteller = "From: ".$onze_naam."<".$onze_email.">\n";
$header_naar_besteller .= "Sender: ".$onze_naam."<".$onze_email.">\n";
$header_naar_besteller .= "Reply-To: ".$onze_naam."<".$onze_email.">\n";
$header_naar_besteller .= "MIME-Version: 1.0\n";
$header_naar_besteller .= "Content-Type: text/html; charset=iso-8859-1\n";
$header_naar_besteller .= "Return-Path: <".$onze_email.">";
#-----------
#----------- de mail naar de besteller
$mail_naar_besteller = "
<html>
<head>
<META http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<META content=\"text/html; charset=iso-8859-1\" http-equiv=\"Content-Type\">
<title>".$onderwerp_naar_besteller."</title>".$stylesheet_email."
</head>
<body>
<br>Geachte ".$_POST['aanhef']." ".$_POST['naam'].",<br><br>
Op ".$datum_kort." heeft u de volgende bestelling geplaatst op de website van ".$onze_naam.":
<br><br>".$_SESSION['bestelling']."Uw gegevens:<br><br>".$gegevens_besteller."
<strong>Het totaalbedrag van ".$_SESSION['totaal']." ".$_POST['betaling']."</strong><br><br>
Uw bestelling is in behandeling!<br><br>
Mochten er onjuiste gegevens in uw bestelling voorkomen, neem dan contact met ons op.<br><br>
Met vriendelijke groet,<br><br>".$onze_naam."
</body>
</html>";
#----------
#---------- aanmeldingen nieuwsbrief opslaan
if ($_POST['nieuwsbrief'] == "ja") {
$query_nb = "INSERT INTO nieuwsbrief (datum,naam,email,ipadres) VALUES (NOW(),'$naam','$email','$ipadres')";
mysql_query($query_nb) or die (mysql_error());
}
#----------
#---------- daadwerkelijk versturen
mail($onze_email,$onderwerp_naar_ons,$mail_naar_ons,$header_naar_ons);
if ($_POST['email'] != "") { # -> eventuele autoresponder
mail($_POST['email'],$onderwerp_naar_besteller,$mail_naar_besteller,$header_naar_besteller);
}
echo "<meta http-equiv=\"refresh\" content=\"5;URL=shop.php\">\n";
echo "<h1>Bestelling voltooid!</h1>\n";
echo "Bedankt voor uw bestelling ".$_POST['aanhef']." ".$_POST['naam'].", u ontvangt zo spoedig mogelijk bericht!<br><br>\n";
echo "U wordt nu teruggebracht naar de startpagina...";
session_destroy(); # -> sessie verwijderen
#----------
} else { # -> niet correct NAW ingevuld -> foutoverzicht
echo $foutoverzicht;
}
} elseif ($_POST['action'] == "bevestig") {
?>
<form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="POST" name="shop_c" onSubmit="javascript:dis_sub(shop_c);">
<input type="hidden" name="action" value="verstuur">
<h1 class="big">Stap 3 - Vul uw gegevens in</h1>
Let op: alle velden gemarkeerd met * zijn verplicht.<br><br>
<table cellspacing="3" cellpadding="0" border="0">
<tr>
<td>Aanhef:</td>
<td><input type="radio" name="aanhef" value="Meneer"> Dhr. <input type="radio" name="aanhef" value="Mevrouw"> Mevr.</td>
<td>Naam*:</td>
<td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Adres*:</td>
<td><input type="text" name="adres"></td>
<td colspan="2"></td>
</tr>
<tr>
<td>Postcode*:</td>
<td><input type="text" name="postcode"></td>
<td>Woonplaats*:</td>
<td><input type="text" name="woonplaats"></td>
</tr>
<tr>
<td>Telefoon*:</td>
<td><input type="text" name="telefoon"></td>
<td rowspan="3" style="vertical-align:top;padding-top:4px;">Bijzonderheden:</td>
<td rowspan="3"><textarea rows="6" name="bijzonderheden" style="height:72px;"></textarea></td>
</tr>
<tr>
<td>Telefax:</td>
<td><input type="text" name="telefax"></td>
</tr>
<tr>
<td>E-mail adres:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="4"><strong>Het totaalbedrag van <?php echo $totaal; ?> :</strong><br>
<input type="radio" name="betaling" value="wordt overgemaakt op girorekening ****** t.n.v. ****** te ******."> Maak ik over op uw girorekening <strong>******</strong> t.n.v. ****** te ******.<br>
<input type="radio" name="betaling" value="wordt voldaan via een factuur. Let op: betaling dient te geschieden binnen 14 dagen na ontvangst."> Wil ik graag via een factuur voldoen. <strong>Let op: betaling dient te geschieden binnen ** dagen na ontvangst.</strong></td>
<!-- zo maar twee opties - hier kan je mee doen wat je zelf wilt ;-) //-->
</tr>
<tr>
<td colspan="4"><input type="checkbox" name="nieuwsbrief" value="ja"> Meld mij aan voor uw digitale nieuwsbrief</td>
</tr>
<tr>
<td colspan="4" align="center"><input type="reset" value="« Leeg de velden"> <input type="submit" value="Plaats bestelling »" name="subknop"></td>
</tr>
</table>
</form><br>
Wilt u uw bestelling wijzigen, <a href="javascript:history.go(-2)">klik dan hier</a>.
<?php
} elseif ($_POST['action'] == "selecteer") {
$i = 1;
$totaal_aantal_a = ""; # -> begin leeg op te voorkomen dat je een undefined variable krijgt
foreach ($_POST['product'] as $value) {
$totaal_aantal_a = $totaal_aantal_a+$value;
$i++;
}
if ($totaal_aantal_a != "0") { # -> akkoord: product(en) geselecteerd -> naam invullen
?>
<form action=" <? echo $_SERVER['PHP_SELF']; ?> " method="POST" name="shop_b" onSubmit="javascript:dis_sub(shop_b);">
<input type="hidden" name="action" value="bevestig">
<?php
#----------- de tabelheader
$_SESSION['bestelling'] = "<table cellspacing=\"3\" cellpadding=\"0\" border=\"0\">\n"; # -> bestelling sessievar maken om in volgende formulier te gebruiken
$_SESSION['bestelling'] .= "<tr>\n";
$_SESSION['bestelling'] .= "<td>Artikelnaam</td>\n";
$_SESSION['bestelling'] .= "<td>Prijs</td>\n";
$_SESSION['bestelling'] .= "<td>Aantal</td>\n";
$_SESSION['bestelling'] .= "<td>Verzendkosten</td>\n";
$_SESSION['bestelling'] .= "<td>Totaal</td>\n";
$_SESSION['bestelling'] .= "</tr>\n";
#-----------
#----------- de tabelrijen
$i = 1;
$totaal_aantal_b = ""; # -> begin leeg op te voorkomen dat je een undefined variable krijgt
$totaal_verzendkosten = "";
$totaal = "";
foreach ($_POST['product'] as $value) {
if ($value != "0") {
$query_bestelling = mysql_query ("SELECT * FROM producten WHERE id = $i");
while ($row = mysql_fetch_array ($query_bestelling)) {
#----------- subtotalen
$totaal_aantal_b = $totaal_aantal_b+$value;
$verzendkosten = $value*$row['verzendkosten'];
$subtotaal = ($value*$row['prijs'])+$verzendkosten;
$totaal_verzendkosten = $totaal_verzendkosten+$verzendkosten;
$totaal = $totaal+$subtotaal;
#-----------
#----------- notatie subtotalen
$row['prijs'] = "€".number_format($row['prijs'], 2, ',', ',');
$verzendkosten = "€".number_format($verzendkosten, 2, ',', ',');
$subtotaal = "€".number_format($subtotaal, 2, ',', ',');
#-----------
#----------- rijen genereren
$_SESSION['bestelling'] .= "<tr>\n<td>(".$row['bestelnummer'].") ".$row['artikelnaam']."</td>\n";
$_SESSION['bestelling'] .= "<td>".$row['prijs']."</td>\n";
$_SESSION['bestelling'] .= "<td>".$value."</td>\n";
$_SESSION['bestelling'] .= "<td>".$verzendkosten."</td>\n";
$_SESSION['bestelling'] .= "<td>".$subtotaal."</td>\n</tr>\n";
#-----------
}
}
$i++;
}
#-----------
#----------- totalen
$totaal_verzendkosten = "€".number_format($totaal_verzendkosten, 2, ',', ',');
$totaal = "€".number_format($totaal, 2, ',', ',');
$_SESSION['totaal'] = $totaal; # -> totaalbedrag sessievar maken om in volgende formulier te gebruiken
#-----------
#----------- tabeleinde schrijven
$_SESSION['bestelling'] .= "<tr>\n";
$_SESSION['bestelling'] .= "<td></td>\n";
$_SESSION['bestelling'] .= "<td></td>\n";
$_SESSION['bestelling'] .= "<td>".$totaal_aantal_b."</td>\n";
$_SESSION['bestelling'] .= "<td>".$totaal_verzendkosten."</td>\n";
$_SESSION['bestelling'] .= "<td>".$totaal."</td>\n";
$_SESSION['bestelling'] .= "</tr>\n";
$_SESSION['bestelling'] .= "</table>\n";
#-----------
?>
<h1 class="big">Stap 2 - Controleer uw bestelling</h1>
U heeft het/de volgende product(en) op uw bestellijst gezet:<br><br>
<?php
#----------- echo de hele tabel
echo $_SESSION['bestelling']."<br>";
#-----------
?>
Wilt u uw bestelling wijzigen, <a href="javascript:history.go(-1)">klik dan hier</a>.<br><br>
Is de bestellijst correct?
Ga dan door naar <a href="javascript:document.forms['shop_b'].submit();">stap drie</a>.
</form>
<?php
} else { # -> geen product(en) geselecteerd -> fout!
?>
<h1 class="big">U heeft geen product(en) geselecteerd!</h1>
<a href="javascript:history.go(-1)">Ga terug en maak uw selectie</a>
<?php
}
} else { # -> de eerste 'pagina'
?>
<h1 class="big">Stap 1 - Maak uw selectie</h1>
<h1 class="big">Maak een keuzen </h1>
<form action=" <? echo $_SERVER['PHP_SELF'] ?> " method="POST" name="shop_a" onSubmit="javascript:dis_sub(shop_a);">
<input type="hidden" name="action" value="selecteer">
<h2 class="big">Onze collectie</h2>
<table cellspacing="3" cellpadding="0" border="0">
<tr>
<td>Artikelnaam</td>
<td>Prijs</td>
<td>Aantal</td>
</tr>
<?php
#---------- schrijf de rijen
$query_overzicht = mysql_query ("SELECT * FROM producten ORDER BY id ASC");
while ($row = mysql_fetch_array ($query_overzicht)) {
$row['prijs'] = "€".number_format($row['prijs'], 2, ',', ',');
echo ("<tr>\n<td class=\"bestellijst\">(".$row['bestelnummer'].") ".$row['artikelnaam']."</td>\n");
echo ("<td class=\"bestellijst\">".$row['prijs']."</td>\n");
echo ("<td class=\"bestellijst\"><select name=\"product[".$row['id']."]\" style=\"width:45px;\">\n");
echo ("<option value=\"0\" selected>0</option>\n");
echo ("<option value=\"1\">1</option>\n");
echo ("<option value=\"2\">2</option>\n");
echo ("<option value=\"3\">3</option>\n");
echo ("<option value=\"4\">4</option>\n");
echo ("<option value=\"5\">5</option>\n");
echo ("<option value=\"6\">6</option>\n");
echo ("<option value=\"7\">7</option>\n");
echo ("<option value=\"8\">8</option>\n");
echo ("<option value=\"9\">9</option>\n");
echo ("<option value=\"10\">10</option>\n");
echo ("</select>\n</td>\n</tr>\n");
}
#----------
?>
<tr>
<td colspan="3" align="center"><input type="reset" value="« Leeg de velden"> <input type="submit" value="Ga door" href="javascript:document.forms['shop_a'].submit();" name="subknop"></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door deacon
[ c o d e ] en [ / c o d e ]
maar dan zonder spaties
het zit hem namelijk in de array die je aangemaakt hebt en uit leest op regel 346 in het laatste code blok. je hebt een array de er zo uitziet
product[id] [aantal]
bij de foreach loop word het aantal er uit gehaald maar je product id word er niet uit gehaald nu heb je dat geprobeerd met de variable $i maar dat werk ook niet de oplossing is
regel regel 346 vervangen door dit:
foreach($product_id as $key => $value){
en die var $i te vervangen door $key
ik heb ook gelijk deze geprobeert
maar werk ook niet.
:(
Gewijzigd op 01/01/1970 01:00:00 door deacon
Ik hoop dat het zo werkt
Dit gaat nog vervelende gevolgen hebben wanneer je met de FLOAT moet gaan rekenen. Er zijn namelijk problemen met afronden. Gebruik een DECIMAL om dit te voorkomen.
MySQL geeft géén foutmelding als je bijvoorbeeld 1234.56 in zo'n veld probeert te stoppen. Hij maakt er zonder pardon 99.99 van.
thnx Johannes hij werkt nu :)
Ik heb niet zo veel verstand van MySQL gedoe, hoe maak ik die DECIMAL aan dan of kan ik die flaot er uit hallen?
dan ga je naar dat je in de database bent naar de tabel producten en ver volgens zie je alle velden die je daar heb ingevult. Daarna zoek je naar het veld prijs en dan zie je daar aan helemaal rechts een kolom action staan, vervolgens klik je op het pennetje (als je er met de muis even op blijft staan zie je change) naast het kruisje, dat pennetje klik je aan en dan kun je alles veranderen dus ook het type van het veld daar maak je DECIMAL van.
succes