Ey,
Ik ben bezig met een webshop systeem.
Alleen het werkt nog niet echt lekker
Dit is de code waar mee bevestigd word.
En volgens php zit hier de fout in:
De fout die php geeft is:
Warning: Invalid argument supplied for foreach() in /home/onlinegast/domains/onlinegastenboek.nl/public_html/vvberkum/frontend/content.php on line 865
URL:
http://www.onlinegastenboek.nl/vvberkum/index.php
Gewoon wat producten bestellen met verschillende maten.
Bestellen, en dan krijg je een bevestiging.
Wees gerust, de bestelling gaat nog niet de database in
.
Ik heb hier al een aantal keren mee zitten spelen maar ik kom er niet uit.
Ik ben bezig met een webshop systeem.
Alleen het werkt nog niet echt lekker
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
| if ( $_GET['optie'] == 'bevestig' ) { // Als er geen gegevens zijn verstrekt door de gebruiker if ( empty ( $_SESSION['userinfo'] ) ) { echo " <p>U moet eerst gebruikers informatie intypen!</p> "; } else { // Om te voorkomen dat mail meerder keren word verzonden (naar pagina reload) een check // VOlgens Markus was dit namelijk een bug, ik heb deze bug zelf niet kunnen repliceren if ( !isset ( $_SESSION['userinfo']['reload'] ) ) { $_SESSION['userinfo']['reload'] = true; // Zet alle info uit de sessie weer in een variable $vnaam = $_SESSION['userinfo']['vnaam']; $anaam = $_SESSION['userinfo']['anaam']; $adres = $_SESSION['userinfo']['adres']; $postcode = $_SESSION['userinfo']['postcode']; $woonplaats = $_SESSION['userinfo']['woonplaats']; $telefoonnr = $_SESSION['userinfo']['telefoonnr']; $opmerking = $_SESSION['userinfo']['opmerking']; $mail = $_SESSION['userinfo']['mail']; $factuur = $_SESSION['factuur']['body']; $checksum = pwgen(50); // Insert de klant in de database $query = "INSERT INTO `klant` (klantnr, vnaam, anaam, adres, postcode, woonplaats, telefoonnr, mail) VALUES ('','$vnaam','$anaam','$adres','$postcode','$woonplaats','$telefoonnr','$mail')"; mysql_query($query) or die ('Kon geen Klant in de database zetten'); $klantnr = mysql_insert_id (); $datum = date ( "Y-m-d" ); $tijd = date ( "H:I:s" ); // Insert de bestelling in de database $query2 = "INSERT INTO `bestelling` (bestelnr, klantnr, datum, tijd, status, checksum, opmerking) VALUES ('','$klantnr','$datum','$tijd','0', '$checksum', '$opmerking')"; mysql_query ($query2) or die ('Kon geen Bestelling in de database zetten'); $bestelnr = mysql_insert_id (); $bt_prodnr = $_SESSION['betaalmethode']['productnr']; foreach ( $_SESSION['winkelwagen'] AS $key => $val ) { $aantal = $_SESSION['winkelwagen']["$key"]['aantal']; $maatid = $_SESSION['winkelwagen']["$key"]['maat_id']; $productnr = $_SESSION['winkelwagen']["$key"]['product_id']; echo "Sessie informatie: Product nummer: $productnr Maat: $maatid Aantal: $aantal<br>"; //Sander Brand edit $brantje1 = mysql_query("SELECT * FROM `mt_pr` WHERE productnr = $productnr") or die("mt_pr error". mysql_error()); $count = mysql_num_rows($brantje1); echo "Count $count"; //voorraad bijwerken //mysql_query ("UPDATE product SET voorraad=voorraad-$aantal WHERE productnr='$productnr'") or die(mysql_error()); // Insert de aankoop in de database $query3 = "INSERT INTO `aankoop` (bestelnr, productnr, aantal, maatid) VALUES ('$bestelnr','$productnr','$aantal','$maatid')"; //mysql_query ($query3) or die(mysql_error()); } //aankoop registreren Edit: door Bernardo $insert = mysql_query("INSERT INTO aankoop_reg (product,tijd,user) VALUES (".$productnr.",".time().",".$klantnr.")"); // Na de bestelling de winkelwagen legen unset ($_SESSION['winkelwagen']); $_SESSION['betaalmethode']['productnr'] = $bt_prodnr; $query4 = "INSERT INTO `aankoop` (bestelnr, productnr) VALUES ('$bestelnr','$bt_prodnr')"; mysql_query ($query4) or die(mysql_error()); // Verificatie mail voor gebruikers //Gegevens uit database halen, zodat deze worden weergeven $sql = "SELECT * FROM `frontpage` WHERE `frid` = 2 LIMIT 1"; $query = mysql_query($sql) or die(mysql_error()); while($mail_text = mysql_fetch_array($query)){ $title = stripslashes($mail_text['title']); $entry = stripslashes($mail_text['entry']); } $subject = $title.$bestelnr; //de voornaam, achternaam en link parsen $entry = str_replace("\n","",$entry); $entry = str_replace("[VOORNAAM]",$vnaam,$entry); $entry = str_replace("[ACHTERNAAM]",$anaam,$entry); $entry = str_replace("[LINK]",$url_root."/check.php?ac=bestelling&checksum=".$checksum."&bestelnr=".$bestelnr,$entry); $message = $entry; $header = "From: $webshop_mail \r\n". "Reply-To: $webshop_mail \r\n". "X-Mailer: PHP/".phpversion(); // Verzamelde gegevens worden verzonden mail ($mail,$subject,$message,$header) or die ( "Fout bij het versturen van activerings mail neem contact op met $webshop_mail" ); } //Sander Brand edit foreach ( $_SESSION['winkelwagen'] AS $key => $val ) { $aantal = $_SESSION['winkelwagen']["$key"]['aantal']; $maatid = $_SESSION['winkelwagen']["$key"]['maat_id']; $productnr = $_SESSION['winkelwagen']["$key"]['product_id']; $brantje1 = mysql_query("SELECT * FROM `mt_pr` WHERE productnr = $productnr AND maatid = $maatid") or die("mt_pr error". mysql_error()); $count = mysql_num_rows($brantje1); echo "Sessie informatie: Product nummer: $productnr Maat: $maatid Aantal: $aantal Rows: $count<br>"; if($count != 0){ mysql_query("UPDATE `mt_pr` SET `voorraad`= `voorraad`-$aantal WHERE `mt_pr_id` = $productnr AND `maatid` = $maatid") or die(mysql_error()); } else { mysql_query("UPDATE `product` SET `voorraad`= `voorraad`-$aantal WHERE `productnr` = $productnr") or die(mysql_error()); } } unset ($_SESSION['winkelwagen']); //page_loader ( "index.php","Uw bestelling is opgeslagen! Er is een bevestigingsmail naar uw mailbox gestuurd. U wordt automatisch doorgestuurd naar de homepagina", 3600 ); } } |
Dit is de code waar mee bevestigd word.
En volgens php zit hier de fout in:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| foreach ( $_SESSION['winkelwagen'] AS $key => $val ) { $aantal = $_SESSION['winkelwagen']["$key"]['aantal']; $maatid = $_SESSION['winkelwagen']["$key"]['maat_id']; $productnr = $_SESSION['winkelwagen']["$key"]['product_id']; $brantje1 = mysql_query("SELECT * FROM `mt_pr` WHERE productnr = $productnr AND maatid = $maatid") or die("mt_pr error". mysql_error()); $count = mysql_num_rows($brantje1); echo "Sessie informatie: Product nummer: $productnr Maat: $maatid Aantal: $aantal Rows: $count<br>"; if($count != 0){ mysql_query("UPDATE `mt_pr` SET `voorraad`= `voorraad`-$aantal WHERE `mt_pr_id` = $productnr AND `maatid` = $maatid") or die(mysql_error()); } else { mysql_query("UPDATE `product` SET `voorraad`= `voorraad`-$aantal WHERE `productnr` = $productnr") or die(mysql_error()); } } |
De fout die php geeft is:
Warning: Invalid argument supplied for foreach() in /home/onlinegast/domains/onlinegastenboek.nl/public_html/vvberkum/frontend/content.php on line 865
URL:
http://www.onlinegastenboek.nl/vvberkum/index.php
Gewoon wat producten bestellen met verschillende maten.
Bestellen, en dan krijg je een bevestiging.
Wees gerust, de bestelling gaat nog niet de database in
Ik heb hier al een aantal keren mee zitten spelen maar ik kom er niet uit.