Opzet webwinkel

Let op: deze tutorial is zeer oud. De methode van scripting is zeer verouderd en de auteur raadt af om deze langer te gebruiken!

De tutorial beschrijft de opzet om te komen tot een webwinkel. De winkelwagen, de producten en het afrekenen komen aan de orde.

Gesponsorde koppelingen

Inhoudsopgave

  1. Voorwoord
  2. Technisch ontwerp
  3. Etalage
  4. Producten toevoegen
  5. De winkelwagen
  6. Verwijderen items
  7. Winkelwagen updaten
  8. Afrekenen
  9. Nawoord

 

159 reacties op 'Opzet webwinkel'

PHP hulp
PHP hulp
0 seconden vanaf nu
 
Gesponsorde koppelingen
Mitch
Mitch
7 jaar geleden
 
1 +1 -0 -1
Nice, het probleem zal bij de meesten niet het scripten zijn maar de opzet, en die is er nu :)
Gerben van Erkelens
Gerben van Erkelens
7 jaar geleden
 
0 +1 -0 -1
Als je dit hebt, dan weet je ook welke scripts je nodig hebt. Erg handig want dan weet je meteen hoe je dat voor elkaar kan krijgen :D
- SanThe -
- SanThe -
7 jaar geleden
 
0 +1 -0 -1
Erg interessant. Zeker leuk om zo maar een keer te gaan maken.
Maar er is 1 regel die ik niet snap in Updaten Winkelwagen, namelijk:
$inNewCart = $product[0].",".$product[1].",".$_POST[$postedQuantity].",".$product[3];
Hier staan 4 elementen in en overal staan er verder 2, het waarom ontgaat mij. Kan iemand dat verklaren/uitleggen?
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
SanThe:
Maar er is 1 regel die ik niet snap in Updaten Winkelwagen, namelijk:
$inNewCart = $product[0].",".$product[1].",".$_POST[$postedQuantity].",".$product[3];
Hier staan 4 elementen in en overal staan er verder 2, het waarom ontgaat mij. Kan iemand dat verklaren/uitleggen?
Simpel.. :) Dat is mijn fout. In de shop die ik gemaakt heb moet ik per artikel 4 dingen onthouden (artikelnummer, aantal, hoeveelheid (inhoud) en motief).

Het is in de tutorial verbeterd.. :)

Elwin


7 jaar geleden
 
0 +1 -0 -1
Mis je in checkout.php niet session_start?
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
Allard:
Mis je in checkout.php niet session_start?
Jup... is gewijzigd.

Elwin


7 jaar geleden
 
0 +1 -0 -1
Nice tut. (Niet nodig voor mij persoonlijk, heb al eens een webshop gebouwd :-) ).
Voor mensen die wat meer willen is het boek "Leer je zelf makkelijk PHP" een goed iets, hierin maken ze ook een webshop.
Erik Rijk
Erik Rijk
7 jaar geleden
 
0 +1 -0 -1
kan je ook de normale SQL code hier plaatsen voor de n00bs onder ons :)


7 jaar geleden
 
0 +1 -0 -1
@Erik
tutorial:
N.B.
De codes in deze tutorial zijn niet getest. Dit komt omdat ik op de plek waar ik het schrijf geen toegang heb tot een webserver.
Daarnaast zijn de codes alleen bedoeld als opstapje en niet als werkend script...

Het niveau van de tutorial is ?hoog?. Dat wilt zeggen dat niet de eerste de beste instap-noob gelijk dit systeem kan gaan ombouwen tot wat hij/zij wilt hebben. Maar dat is ook niet erg.. wil je een beetje systeem als een webwinkel bouwen moet je ook geen noob meer zijn.

Dus zelfs met de SQL code kan je waarschijnlijk nog niet veel. Maar je kan het gewoon invoren in PHPMyAdmin
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
Webmakerij:
Dus zelfs met de SQL code kan je waarschijnlijk nog niet veel. Maar je kan het gewoon invoren in PHPMyAdmin
En hoe die er uit kan zien, staat bij het voorbeeld van mijn normalisatie in deze tutorial.

Elwin


7 jaar geleden
 
0 +1 -0 -1
Erg vet, ik wil al een tijdje zoiets bouwen maar de opzet is altijd erg lastig.
Thx voor dit script iig, kan er vast wel wat leuks omheen bouwen :D
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
Ik:
osCommerce
Niet iedereen heeft genoeg aan / neemt genoegen met een standaardoplossing.

Elwin
Mitch
Mitch
7 jaar geleden
 
0 +1 -0 -1
Je bent toch nooit tevreden met wat een ander heeft gemaakt?
Ik wil het iig altijd selluf doen! :)
Wes
wes
7 jaar geleden
 
0 +1 -0 -1
jij mag wel voor al mn sites foutmeldingen schrijven :p geweldig. Goed script, beetje lackin in de uitleg voor beginnende gebruikers ermee denk ik maar (Y) scripppie


7 jaar geleden
 
0 +1 -0 -1
Okay! dit is tenminste een goed duidelijk script waar ik op zoek naar ben!!! heb ook al op phpfreaks gekeken naar zoiets maar daar deden ze het met cookies. Dit is tenminste een logische manier

heel erg bedankt!!!


7 jaar geleden
 
0 +1 -0 -1
Ik heb zoiets ook wel eens voor school in ASP moeten maken. Alleen was het toen uitgebreider en toen moest er ook een veiling bij.
Het moeilijkste gedeelte echter ben je vergeten en dat is online betalingen. Dit verloopt vaak via XML achtige systemen met een bank waar je een contract mee moet hebben. Dus misschien zou je hier nog wat aanvullende informatie over kunnen geven voor mensen die zoiets dergelijks willen opzetten.
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
Jeroen:
Het moeilijkste gedeelte echter ben je vergeten en dat is online betalingen.
Nee, dat ben ik niet vergeten. Zoals in mijn nawoord:
Elwin:
Ik zal de laatste zijn die beweerd dat deze tutorial het beste bestelsysteem beschrijft. In tegendeel: het is heel erg basaal. Meer als een winkelmandje en de bestelling in de database zetten is het niet.
En als meer is het ook niet bedoeld. Betalingen hebben ook helemaal geen zin want,

a) niet iedereen kiest dan die ik hier neer zet waardoor je hier ellelange scripts krijgt in de comments
b) een beetje leverancier van een online betalingsmogelijkheid zijn klanten die scripts verstrekt (wat het 'moeilijke werk' dan alleen maar het doorgeven van de totaalprijs inhoud)

Elwin


7 jaar geleden
 
0 +1 -0 -1
Leuke duidelijke tut, maar ik krijg steeds als ik een 2e produkt wil toevoegen aan de winkelwagen de volgende foutmelding:

Warning: Invalid argument supplied for foreach()

dus in de line met " foreach($cart as $products) "
in het bestand add.php :(

waar kan dit aan liggen?
Alvast bedankt


7 jaar geleden
 
0 +1 -0 -1
Ik heb je script ook uitgeprobereerd, werkt tot dusver naar behoren, alleen wanneer ik een product in de winkelwagen doe, en vervolgens ververs, is het product weer weg ? Zie : http://62.194.235.128/webshop/producten.php
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
@Martin
Ik heb helaas geen idee waar dat aan kan liggen.
Probeer te kijken wat er in de sessie-variabele staat, doe het volgende voor de foreach().

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// Code $add = TRUE;
exit(print_r($cart));
// Code foreach()
?>


@Wijnand
Volgens mij heb jij wel het een en ander gewijzigd in de winkelwagen, is het niet?
Je hebt daar voor aantallen van de producten in het formulier aantallen_ gezet, terwijl in de tutorial en hoeveelheid_ staat. Geen probleem, maar dan moet je het in het update-script ook aanpassen.

Elwin


7 jaar geleden
 
0 +1 -0 -1
Is er iemand die dit script al ergens online heeft staan? Ik ga er ook ff mee stoeien, ben ook al tijdje op zoek naar leuke, werkende webshop
tnx


7 jaar geleden
 
0 +1 -0 -1
Ik krijg ook de melding
----------------------------------------------------------
Warning: Invalid argument supplied for foreach()

dus in de line met " foreach($cart as $products) "
in het bestand add.php
----------------------------------------------------------
Alleen de eerste keer (dus als de sessie nog moet worden aangemaakt) werkt hij. Maar zodra je een twede product toevoegt gaat het mis. Ik heb de line die je aangaf :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// Code $add = TRUE;
exit(print_r($cart));
// Code foreach()
?>


geplaatst en deze geeft als eerst resultaat als ik iets bestel:

Array ( [0] => Array, [1] => 070520051,2 ) 1

en als ik nu nog iets aanklik om te bestellen:

Array ( [0] => Array ) 1

Hoe komt dit?


7 jaar geleden
 
0 +1 -0 -1
Ik heb het zelf al kunnen oplossen. Het was dat de sessie variabele $_SESSION['cart'] samen met de $cart = explode("|", $_SESSION['cart']);

Als je de $cart variabele van de explode anders noemd dan is het probleem opgelost ;-)


7 jaar geleden
 
0 +1 -0 -1
Krijg een foutmelding bij het afrekenen.
Checkout pagina:
Warning: Wrong parameter count for date() in /home/users/stephanlangedijk/public_html/checkout.php on line 14
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 4
in file /home/users/stephanlangedijk/public_html/checkout.php on line 15

Iemand een idee?


7 jaar geleden
 
0 +1 -0 -1
@Stephan
Is dat niet toevallig die regel met
Quote:
Verzin iets moois voor de date() functie
erin?

Daar moet je zelf kijken hoe je de datum in de database zet.

Elwin


7 jaar geleden
 
0 +1 -0 -1
Ik krijg elke keer de error dat de hoeveelheid niet is ingevuld, ik kan 1 product toevoegen maar bij de rest krijg ik dus elke keer die error waar kan dat aanliggen!?


7 jaar geleden
 
0 +1 -0 -1
// Variables
if(!is_numeric($_GET['item'])) $item = $_GET['item'];
else exit ("Niet gelukt!");

Dit gedeelte werkt bij ons niet, kan dit met register globals te maken hebben, en zo ja hoe op te lossen?

Alvast bedankt.
Jeroen


7 jaar geleden
 
0 +1 -0 -1
// Variables
if(!is_numeric($_GET['item'])) $item = $_GET['item'];
else exit ("Niet gelukt!");

dat is bij mij ook het probleem @! ik ben nu bezig met een odbc versie ipv een mysql maar die code is echt hendig +1

JP


7 jaar geleden
 
0 +1 -0 -1
meer specs
-------------------------------------------------------------------------
parse error in delete_cart_item.php on line 6

5 // Variables
6 if(!is_numeric($_GET[\'item\'])) $item = $_GET[\'item\'];
7 else exit (\"Niet gelukt!\");

apache apache 2.0.43
PHP4.2.3
MySQL4
phpMyAdmin 2.3.2
-------------------------------------------------------------------------


7 jaar geleden
 
0 +1 -0 -1
(tijdelijke) oplossing
5
6 $item = $_GET[\'item\'];
7


7 jaar geleden
 
0 +1 -0 -1
Ik krijg op cart.php als output :

Er staan 2 producten in je winkelwagen

Productnummer Productnaam Hoeveelheid Prijs p/s Totaal
Unknown column 'Array' in 'where clause'
in file /opt/www/goemaerem9/web/www.p-j-shop.be/cart.php on line 75

enig idee of dit met mijn php-instellingen kan te zien hebben ?


7 jaar geleden
 
0 +1 -0 -1
Denk je ook om invoercontrole? Als je nu 2.5 artikel invult accepteert hij dat ook.. en text invoer is ook handig om af te vangen! is_numeric is dus niet genoeg.. want dan pakt hij niet 2.5 EN 2,5

daarvoor dus even met een number_format omzetten!


7 jaar geleden
 
0 +1 -0 -1
Ik heb hetzelfde probleem als MG, het probleem ligt volgens mij in de volgende regel:

$sql = "SELECT productnaam, prijs FROM product WHERE productnummer = ".$product[0];

De reden waarom ik dit denk is, dat ik (om erachter te komen of dat de fout was) $product[0] had verandert in $productnummer, dan geeft hij geen mysql fout aan, maar krijg je natuurlijk ook niets te zien van wat er nou eigenlijk in de cart staat...
Michiel
Michiel
7 jaar geleden
 
0 +1 -0 -1
Het probleem " $sql = "SELECT productnaam, prijs FROM product WHERE productnummer = ".$product[0]; " valt in ieder geval op te lossen door zowel in add.php als cart.php de variabele $cart te vervangen door bvb. $cart2

Om de ??n of andere reden die mij niet helemaal duidelijk is, ontstaan er problemen als de var die ge-explode wordt dezelfde benaming heeft als de sessie-var ...
Martijn
Martijn
7 jaar geleden
 
0 +1 -0 -1
Leuk hoe je dat doet met het toevoegen van kwantiteiten aan de sessies, ik heb zelf een webshop al eens op dezelfde manier gescript, alleen gebruikte ik sessies en sloeg ze tegelijkertijd op in een db. Dit werkt ook prima en is miss nog wel iets simpeler


7 jaar geleden
 
0 +1 -0 -1
ik heb een probleem met het toevoegen van producten aan de winkelwagen.

Ik heb nu even 2 producten aangemaakt in de etalage, vervolgens maakt het niet uit op welk product ik klik om toe te voegen, hij pakt elke keer de onderste en voegt die dan toe. wie kan mij helpen?
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
@Danny
Pas terug zat ik met Michel (zie een paar reacties terug) te testen om die fout er uit te halen. Toen kwam ik dat ook tegen. Ik weet niet precies of het aan de versie van PHP ligt, maar je kan het anders doen:

Laat de producten per pagina zien (product.php?id=x, oid) zodat je maar ??n form op een pagina hebt. Dat werkt dan wel goed. In dat geval kan je ook iets meer laten zien, zoals een plaatje of een grotere beschrijving van het product (zolang je dat ergens opslaat natuurlijk).

Elwin


7 jaar geleden
 
0 +1 -0 -1
Ik ben aan het kijken geweest, maar als ik op deze regel de | vervang door bijvoorbeeld een , dan werkt hij al anders en kan ik wel een ander product toevoegen, maar werkt nog niet vlekkeloos.

$cart = explode(",",$_SESSION['cart']);

ipv

$cart = explode("|",$_SESSION['cart']);

heeft dit er iets mee te maken?


7 jaar geleden
 
0 +1 -0 -1
Exacte syntax om array-foutmelding eruit te halen:
$sql = "SELECT * FROM producten WHERE id = '".$product[0]."'";

Blijft echter over dat $cart = explode("|",$_SESSION['cart']); niet werkt.
Voor zover ik kan beoordelen omdat $_SESSION['cart'] niet de juiste inhoud krijgt. Zonder inhoud of een onjuiste inhoud valt er immers ook niets te exploden. Wanneer ik $_SESSION['cart'] echo krijg ik op de server thuis netjes 34,2 | 25,3 enz. Online krijg ik letterlijk Array.
Suggesties zijn heel erg welkom.


7 jaar geleden
 
0 +1 -0 -1
En Danny,
De | vervangen door een , heeft geen nut omdat de productnummers en de hoeveelheden al door een , worden gescheiden. Ik kan me dus goed voorstellen dat je dan een ander resultaat krijgt, maar helaas niet het juiste. Als je de | wilt vervangen gebruik dan een ander teken als ,. Helaas ben je dan wel weer terug bij af.


7 jaar geleden
 
0 +1 -0 -1
Dom, dom, dom. Het was wat Rick al eerder schreef:

"Het was dat de sessie variabele $_SESSION['cart'] samen met de $cart = explode("|", $_SESSION['cart']);

Als je de $cart variabele van de explode anders noemd dan is het probleem opgelost ;-)"


7 jaar geleden
 
0 +1 -0 -1
Kan je er voor mij een zip van maken?
Alvast Bedankt,

yoshi@yahiko.nl


7 jaar geleden
 
0 +1 -0 -1
Heeft er iemand hier een online voorbeeld staan. Altijd handig om dit eens te bekijken alvorens eraan te beginnen.


7 jaar geleden
 
0 +1 -0 -1
ik ben het eens met svm, is er een online voorbeeld hiervan?


7 jaar geleden
 
0 +1 -0 -1
@Buras
-------------------
Uhm dit is een tutorial. Het is de bedoeling dat je je verdiept hierin en dan je eigen maakt. Bij een script heb je wel voorbeelden maar bij tutorials is het niet verplicht :)


7 jaar geleden
 
0 +1 -0 -1
Hallo, ik wou ook graag een webwinkel beginnen maar ik heb geen verstand van php om eerlijk te zijn wel met html.

hoekan ik dit het beste aanpakken op zich snap ik het wel snel maar heb een beetje op internet gekeken en heb 1 gratis script gevonden maar al sla je me dood begrijp er geen bal van

ik heb dreamweaver trouwens.

ik hoop gauw wat te horen
alvast bedankt
Mitch
Mitch
7 jaar geleden
 
0 +1 -0 -1
Je zou kunnen beginnen met het leren van PHP, als je goed je best doet kun je binnen een paar maanden de basis van 'n webwinkel maken :)
En anders wordt het helaas dokken voor een 'prof' scripter.
Remco van Arkelen
Remco van Arkelen
7 jaar geleden
 
0 +1 -0 -1
Ik begrijp niet helemaal waarom er niet gebruik is gemaakt van een multi-dimensionaal sessie-array;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$_SESSION
['cart']['012345'] = 2;
$_SESSION['cart']['789012'] = 15;

// Waarbij de tweede dimensie het artikelnummer voorstelt
?>


Op die manier hoef je helemaal geen rare sprongen te maken met explode / list / count etc. Gewoon een foreach laat alle artikelen met hun aantallen zien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if( is_array($_SESSION['cart']) )
{

  foreach( $_SESSION['cart'] as $artikelnummer=>$aantal )
  {

    echo $artikelnummer.' is '.$aantal.' keer besteld<br />';
  }
}

?>
Gerrit JAn
Gerrit JAn
7 jaar geleden
 
0 +1 -0 -1
Hoe is het mogelijk als ik deze script gebruik dat ik niet meer dan 2 producten kan toevoegen aan de cart.php want als ik een 3de er toe voeg dan gaat de andere weg en ik krijg al ik een product kies uit de zelfde catogory neemt hij altijd de laaste product in de cart.php


7 jaar geleden
 
0 +1 -0 -1
Bonsjoerr,

Ik ben bezig met het maken van een webwinkel, maar dan in asp. Ik vroeg me af je ook een back-end aan je webwinkel hebt gemaakt.
En/ of jij (of iemand) een idee heeft hoe ik dit kan maken, met behulp van andere sites ofzow. Of als je info hebt, zou ik dat graag willen weten..

Alvast bedankt. Groetjes LiLa
Remco van Arkelen
Remco van Arkelen
7 jaar geleden
 
0 +1 -0 -1
In ASP? Ik neem aan dat je gebruik maakt van een Access-database? In Access kun je formulieren maken en opslaan als ASP, een beetje stylen/aanpassen en klaar is LiLa :)


7 jaar geleden
 
0 +1 -0 -1
in het bestand cart.php
staat deze regel
$sql = "SELECT * FROM product WHERE productnummer =" .$product[0]; // Weet je nog, uit die sessie

dan krijg hele tijd de fout van

Unknown column 'Array' in 'where clause'
in file C:\xampp\htdocs\webshop\3\cart.php on line 63

maar als ik er dit van maak
$sql = "SELECT * FROM product WHERE productnummer";

dan krijg ik de verkeerde info van de gene die ik toevoeg en kan ook niet meer dan 2 items toevoegen


7 jaar geleden
 
0 +1 -0 -1
Als ik in de etalage op een button click, wordt in Add.php de id van het laatste product gebruitk. Wat doe ik verkeerd???


7 jaar geleden
 
0 +1 -0 -1
als ik een 2de product wil toevoegen dan krijg ik deze foutmelding

"Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\webshop\nova\index.php:83) in C:\xampp\htdocs\webshop\nova\webshop\add.php on line 62"

weet iemand waardoor dat komt


7 jaar geleden
 
0 +1 -0 -1
Als ik steeds een product wil toevoegen krijg ik de error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
in file /vhost/usr/enquete/pizza/cart.php on line 70

Heeft iemand deze webshop wel werkend gekregen?


7 jaar geleden
 
0 +1 -0 -1
Heeft iemand deze webshop online staan zodat ik die eens kan bekijken. Want ik krijg foutmelding ivm mijn MySQL.

Gr,

Tony


7 jaar geleden
 
0 +1 -0 -1
Hallo,

Het probleem dat eerder beschreven werd, gaande over het altijd selecteren van de onderste producten uit het overzicht producten.php kan verholpen worden door de eindtag </form> toe te voegen.

Doordat dit vergeten is, wordt de form afgesloten bij de laatste.

Succes en bedankt, het werkt aardig!


7 jaar geleden
 
0 +1 -0 -1
Cool,
het werk goed bij mij.
Heb het gewoon goed doorgelezen en een paar keer geprobeerd.
Ik moest een paar dingen veranderen die verkeerd waren
( Nu nog alles uitbrijden :P )

Nog bedankt :p
Doei,

Tennie.
Elwin - Fratsloos
Elwin - Fratsloos
7 jaar geleden
 
0 +1 -0 -1
N.a.v. de reactie van richard heb ik het script even gewijzigd.

Elwin
Wes
wes
6 jaar geleden
 
0 +1 -0 -1
ik heb hier een mooie werkende pagina van gemaakt met stijlen, databases en bijbehorende mail functies, met hier een daar een variatie op het orgineel. Tis alleen zo dat dit niet vol moet lopen met testers, dus als je de url wil moet je me ff een pm sturen, maak ik tijdelijk een account voor je aan
Gotha
gotha
6 jaar geleden
 
0 +1 -0 -1
bedankt voor deze info
Maar kun je aub ook met inlog script maken + mysql
en bedankt
Thijs
Thijs
6 jaar geleden
 
0 +1 -0 -1
Hallo ik heb telkens het probleem bij het afrekenen.
Weet iemand een oplossing??
Dennis
dennis
6 jaar geleden
 
0 +1 -0 -1
Ik heb een oplossing op het probleem van MG gevonden:

Unknown column 'Array' in 'where clause'
in file /opt/www/goemaerem9/web/www.p-j-shop.be/cart.php on line 75

Je moet hiervoor de register_globals in je php.ini file op off zetten en dan doet die het wel gewoon normaal.
Jelle
Jelle
6 jaar geleden
 
0 +1 -0 -1
hallo mensen, ik heb hetzelfe probleem als redmer.
wanneer ik een product toevoeg krijg ik de volgende melding


Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\xampp\htdocs\php\SITE\winkelwagen\add.php:3) in C:\Program Files\xampp\xampp\htdocs\php\SITE\winkelwagen\add.php on line 69

ik ben het spoor bijster... weet iemand wat?
Mike.M
Mike.M
6 jaar geleden
 
0 +1 -0 -1
Ik krijg het script ook niet aan de praat en heb een aantal hier besproken problemen zelf ook al gevonden voor ik me bedacht hier eens te gaan kijken. Verdiep me pas een paar maanden in PHP maar kom steeds tot de conclusie dat het misschien beter is met multi-dimensionaal sessie-array te werken zoals Remco van Arkelen op 28 juli ook al schreef.

Is iemand het hier mee eens of is het beter dit script uit te werken?
Jelmer
Jelmer
6 jaar geleden
 
0 +1 -0 -1
@ jelle,
session_start(); moet altijd helemaal aan het begin staan, dus boven <HTML><bla bla bla
jij hebt het waarschijnlijk wel helemaal boven in je eerste php scripts, maar het moet ?cht bovenaan, dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
session_start();
?>

bovenaan de pagina ;)

zelf had ik dit probleem ook regelmatig, toen wist ik ook niet waar ik het moest zoeken ...
Ikbener
ikbener
6 jaar geleden
 
0 +1 -0 -1
Hele mooie tutorial.
Hier heb ik veel aan, de opzet is nu voor mij in ieder geval helder.
Met alle hierboven beschreven opmerkingen heb ik er een werkende versie van gemaakt. Heb alleen nog een formuliertje toegevoegd om wat klantgegevens behorende bij de bestelling vast te leggen.
Het is nu eigenlijk nog een kwestie van uitbreiden, validaties bouwen en de layout opmaken.

De werkende versie is hier te vinden (ik weet alleen nog niet hoe lang deze hier zal staan)

http://members.lycos.nl/audre/etalage.php
Boris
Boris
6 jaar geleden
 
0 +1 -0 -1
ik heb een probleem bij het berekenen van de totaalprijs...
de code van cart.php heb ik helemaal gekopieerd, ik krijg wel goed alle producten in het winkelwagentje, maar niet de totaalprijs, wel de prijs per stuk...

kan iemand me helpen, ik heb NIETS aan de code veranderd
Frank
Frank
6 jaar geleden
 
0 +1 -0 -1
Zeker een mooie tutorial! ik ben daarom er ook leuk mee aan het spelen. Alleen zoals ik het laatste bericht al gesteld heb ik ook een probleem met het totaalbedrag. Deze staat standaard op 0 en word na verversen ook niet hoger.

Weet iemand raad? Er zijn al zoveel probleempjes opgelost dus heb er vertrouwen in.
Gerard
Gerard
6 jaar geleden
 
0 +1 -0 -1
Hallo Frank,

probeer dit eens
echo " <td>".$pro_cart->prijs."</td>\n";
$lineprice = $product[1] * $pro_cart->prijs;
Jan
Jan
6 jaar geleden
 
0 +1 -0 -1
Unknown column 'Array' in 'where clause'
in file /home/manifies/public_html/ronse/shop/cart.php on line 66

bestaat er ook een oplossing als je je php.ini niet kan wijzigen?
Rob
Rob
6 jaar geleden
 
0 +1 -0 -1
@Boris:
zoek in cart.php even naar: $lineprice = $product[1] * $price en vervang dit voor: $lineprice = $product[1] * $pro_cart->prijs; thats all ;) good luck!
Bernardus
Bernardus
6 jaar geleden
 
0 +1 -0 -1
Ik heb problemen met het aanmaken van de database

Bij de etalage pagina krijg ik dus ook de melding

No database selected
in file D:\AppServ\www\webshop\etalage.php on line 6

Kan iemand mij even de goede richting uit helpen?
Frank
Frank
6 jaar geleden
 
0 +1 -0 -1
Ik heb deze tut ook gebruikt om een afrekensysteempje te maken. Nu las ik het eerder opgemerkte probleem dat alleen het laatste artikel toegevoegd word. Dit heb ik nog steeds ondanks dat ik de form gesloten heb zoals eerder aangedragen.

Ik heb een 6tal pagina's welke elk een query result geeft van artikelen. Uit elk van deze pagina's kan ik een willekeurig artikel kiezen, hij pakt alleen de laatste van elke pagina.

Ik hoop dat de mensen die hem wel werkend hebben gekregen mij verder kunnen helpen. :)
Frank
Frank
6 jaar geleden
 
0 +1 -0 -1
Btw: ik ben een andere Frank als degene die eerder gereageerd heeft.
Gert
Gert
6 jaar geleden
 
0 +1 -0 -1
De vraag van Jan is bij mijn weten nog niet beantwoord. Heeft iemand daar wel een antwoord op?
Ik heb nl hetzelfde probleem en ben ook op zoek naar een oplossing.
Moontje
Moontje
6 jaar geleden
 
0 +1 -0 -1
Ik weet niet of iemand het al had opgelost, dat het laatste artikel alleen word toegevoegd in de database, maar het is mij perongeluk gelukt.

Ik heb de database iets veranderd.

Bij de tabel: bestelling
heb je de velden: bestel_id, besteldatum en nog een aantal in mijn geval

Bij de tabel: bestelregel
heb je de velden: bestel_id, product_id en aantal_besteld

Dan geeft hij dus aan dat hij niet meerdere kan opslaan, omdat bij beide tabellen het primaire veld bestel_id is (hier bestelnummer). Ik heb in de tabel bestelregel, daarom het veld regel_id toegevoegd, als primaire key met autonummering en bestel_id staat er gewoon in als int veld.

Op deze manier slaat hij wel alle toegevoegde producten op en zet hij bij bestel_id, dus het nummer van de bestelling de rest (regel_id) nummert hij automatisch. Je krijgt ook geen foutmelding meer.

Je kunt op deze manier de bestelregels koppelen aan de juiste bestelling. Als iemand het wel al had opgelost... nou ja, overbodige info dan.. hihi..

Voor de rest nog even een bedankje, voor deze tutorial! Wel even puzzelen hier en daar... maar toch goed te doen! xx Moontje and the moon..
Hanna vermeij
hanna vermeij
6 jaar geleden
 
0 +1 -0 -1
Nice tutorial!! I love it! Ik heb een fout ontdekt in deze regel:
if(!is_numeric($_GET['item']) $item = $_GET['item'];

De uitroepteken moet weg, anders staat er: als het geen nummer is dan...
Zo hoort het te zijn: if(is_numeric($_GET['item']) $item = $_GET['item'];

Anders kreeg ik hele tijd wat er in de else staat.
Bruno -
bruno -
5 jaar geleden
 
0 +1 -0 -1
k heb nog steeds nie de oplossing :s voor het deleten van producten
iemand oplossing voor dees regel:f(!is_numeric($_GET['item']) $item = $_GET['item'];
Bruno -
bruno -
5 jaar geleden
 
0 +1 -0 -1
wahiaihaiawh ik heb mijn foutje gevonde :D ut lag aan de stukje javasscript window.location="delete_cart_item.php?ItemID=" + item; ik heb item vervangen door ItemID... en daar in delete_cart_item.php zo gedaan if(is_numeric($_GET['ItemID'])) $item = $_GET['ItemID'];
Abc def
abc def
5 jaar geleden
 
0 +1 -0 -1
Waarom is er geen optie om verder te winkelen??
is dat niet mogelijk?
Jurgen B
Jurgen B
5 jaar geleden
 
0 +1 -0 -1
Toch zouden veel mensen (waaronder ik) het zeer waarderen als je de SQL zou plaatsen.

Ik ben erg leergierig en wil ook graag zo veel mogelijk van PHP en MySQL leren maar je database verhaal wordt mij net iets t? lastig. Als je SQL plaatst maak je het systeem voor meer mensen toegangkelijker en kunnen meer mensen leren van je tutorial, en dat is nou net waar ze voor zijn.
Abc def
abc def
5 jaar geleden
 
0 +1 -0 -1
Beste,

Als je twee dezelfde producten toevoegd aan je winkelmandje.
dan ziet hij ze als twee verschillende?!?, de hoevoelheid wordt niet opgeteld??

Hij zou dus eigenlijk de array moeten afzoeken naar hetzelfde product en dan de hoeveelheid verhogen.


Hoe gaat dit in zijn werk?


Verder is dit een prachtige opzet!
Jurgen B
Jurgen B
5 jaar geleden
 
0 +1 -0 -1
Zijn er nog mensen aanwezig op de site die de SQL erbij hebben ?
Jurgen B
Jurgen B
5 jaar geleden
 
0 +1 -0 -1
@ Roy ... De optie om verder te winkelen zul je zelf even moeten schrijven.

Ik neem aan dat dat geen probleem is?!

PS. Heb jij de SQL van het systeem?
Sander
sander
5 jaar geleden
 
0 +1 -0 -1
ik ben nu bezig met een webshop
erg handig dit :D
Jurgen B
Jurgen B
5 jaar geleden
 
0 +1 -0 -1
Heeft iemand al iets bedacht voor het date() probleem in checkout.php?

En zo ja, hoe is het bij jullie geworden? Voorbeelden?
Geertjan
geertjan
5 jaar geleden
 
0 +1 -0 -1
Heb je trouwens geen config bestand nodig ???
Aldo geen
aldo geen
4 jaar geleden
 
0 +1 -0 -1
Ik krijg een foutmelding bij het add script dat de $i undefined is, wat doe ik fout?
Cake Masher
Cake Masher
4 jaar geleden
 
0 +1 -0 -1
@geertjan: jawel, moet je er zelf ff inbouwen. Dit staat tussen Tutorials. Niet tussen Scripts.. hij is niet compleet, je moet hem zelf hier en daar aanpassen.. Elwin laat zien hoe het er ongeveer uit zou moeten zien.. dus het word knutselen :)


Goede tutorial, hoewel je je taalgebruik wel een beetje mag aanpassen (richting de klant) (vind ik..).
Ik was zelf ook al van plan een webshop te bouwen. =]
Johan
Johan
4 jaar geleden
 
0 +1 -0 -1
Jurgen B schreef op 27.11.2006 13:20
Heeft iemand al iets bedacht voor het date() probleem in checkout.php?
En zo ja, hoe is het bij jullie geworden? Voorbeelden?

voor de error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
in file /vhost/usr/enquete/pizza/cart.php on line 70

voorbeeld opgelost:

$sql = "INSERT INTO bestelling
(bestelnummer, klantnummer, datum)
VALUES
('".$_SESSION['bestelnummer']."','".$_SESSION['klantnummer']."','".date("d-m-Y g:i a")."')"; // Verzin iets moois voor de date() functie

het gaat om het toevoegen van de enkele aanhalingstekens, deze zijn vergeten in het voorbeeld op de website.
hierna werkt het als het goed is als een zonnetje
Christian
christian
4 jaar geleden
 
0 +1 -0 -1
ik heb nergens problemen, alleen bij het adden van producten. kan iemand me erbij helpen?

mail het dan even op christian@chaterz.nl
Terence Hersbach
Terence Hersbach
4 jaar geleden
 
0 +1 -0 -1
@christian, het is verstandiger een topic te openen dan je emailadres hier neer te zetten (tenzij je spam wilt natuurlijk)
Christian
christian
4 jaar geleden
 
0 +1 -0 -1
Hoe moet ik die producten toevoegen in die lijst?


// Laat de producten zien
while($product = mysql_fetch_object($query)) {
echo "<form action=\"add.php\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"122\" value=\"".$product->productnummer."\" />\n";
echo "<p><strong>".$product->heya."</strong> - ".$product->productnaam."<br />\n";
echo "Prijs per stuk: ? ".$product->prijs."<br />\n";
echo "Aantal: <input type=\"text\" name=\"hoeveelheid\" size=\"2\" maxlength=\"2\" value=\"1\" />\n";
echo "<input type=\"submit\" value=\"In Winkelmandje Leggen\" /></p>\n";
echo "</form>\n";
Brian
brian
4 jaar geleden
 
0 +1 -0 -1
Heb op wat reacties gezien dat er na 2 producten een fout op treed en de SESSION[cart] verkloot.

Hier een oplossing voor als je wilt controleren als er al een product al reeks is ingevuld. dit stukje code geheel in de else gedeelte plakken en voila.

Belangrijk ! bij impode en explode heb ik . gebruikt ipv , !

$cart = explode("|",$_SESSION['cart']);

//DEbug info
//print_r($_SESSION['cart']);

$x=0;
foreach($cart as $products){
$product = explode(".",$products);

// Hier gaan we checken of het product reeks bestaat zo niet addno is
// nog altijd false en zal niet op true komen als het product nog niet is
// toegevoegd.

if ($product[0] == $productnummer) {
$product[1] = $product[1] + $hoeveelheid;
$cartshop[$x]= $product[0].".".$product[1];
$addno=true;
}else{
// Hier een nieuwe var $cartshop die een nieuwe array word voor de SESSION.

$cartshop[$x]= $product[0].".".$product[1];
}

$x++;

}

// Maken het weer netjes zoals het hoort voor deze array.
$cartshop=implode("|", $cartshop);

// Hier de addno bestaat het product dan is addno true.
if ($addno==true){
$_SESSION['cart'] = $cartshop;
}
// Hier bestaat het product nog niet en moet nog even toegevoegd worden.
if ($addno==false){
$_SESSION['cart'] = $cartshop."|".$productnummer.".".$hoeveelheid;

}
/home/joost
/home/joost
4 jaar geleden
 
0 +1 -0 -1
Hoi,

heb je ook iets met CREATE table enzo dat is makkelijker,
de meeste mensen ( geef zelf toe, ik ook niet ) weten niet goed welke typen ze moeten gebruiken voor wat, bijv als je een id gebruikt bijv een auto_increment snap je dan is het makkelijker om er ook een create table bij te maken :) vind ik hoor

mvg Joost
Jurgen
Jurgen
4 jaar geleden
 
0 +1 -0 -1
Het is gewoon even logisch nadenken wat je gaat gebruiken. een auto increment is altijd een integer. Dit zet je dus in een INT veld, of Serial in PGSQL. Een wachtwoord dat je MD5 hasht is altijd 32 karakters. Omdat ditr een vaste waarde is kun je hier een TEXT van maken. Content of titels VARCHAR. Content kan ook MEDIUM of BIG TEXT zijn.
Reina
reina
4 jaar geleden
 
0 +1 -0 -1
Ik heb een webshop gemaakt mbv deze tutorial. Alles werkt, alleen de sessies gaan niet goed (tenminste ik denk dat het daaraan ligt). Na het plaatsen van een aantal artikelen in de ww en het aanpassen van een aantal artikelen of weggooien en daarna weer rondklikken door de site, verandert de inhoud van mijn winkelwagen: Of weer terug naar hoe het een aantal seconden/minuten daarvoor was of hij verwisselt artikelen met degene die ik net heb weggegooid. Ik kan geen logica vinden in wat er fout gaat. Iemand dit wel eens gezien of herkent het probleem?
Marcel van Dijk
Marcel van Dijk
3 jaar geleden
 
0 +1 -0 -1
Wellicht een domme vraag... Ik heb echt geen idee hoe ik deze pagina's nou precies laat verbinden met mijn database.

Ik snap dat ik een config.php achtig bestand zal moeten aanmaken en includen maar wat moet er dan in dat config bestand staan...

Ik hoop dat iemand me dit kan uitleggen.

Alvast bedankt!
Gerben G
Gerben G
3 jaar geleden
 
0 +1 -0 -1
In je config bestand maak je verbinding met de database.
zie http://www.php.net/mysql_connect
Agge Lukens
agge Lukens
3 jaar geleden
 
0 +1 -0 -1
hoi,
als ik een een product wil gaan bestellen door op afrekenen te klikken krijg ik de volgende foutmelding:

Column count doesn't match value count at row 1
in file /home/vol4/byethost14.com/b14_2868300/htdocs/test/checkout.php on line 8

alleen ik kan nergens vinden waar dat aan kan liggen.
hoop dat iemand het hier snapt
Plato Republic
Plato Republic
3 jaar geleden
 
0 +1 -0 -1
Beste mensen
bij het afrekenen gaat wat mis. Ik gebruik geen klantnummer. De klant koopt eerst paar producten en dan pas gaat ie afrekenen. Bij de checkout.php moet hij een gegevensformulier invullen. Nu zit ik het probleem dat de gegevens van vershillende producten niet worden meegenomen van uit de cart.php.

heeft dat al opgelost? of hoe hebben jullie het gedaan?

Dank
Milo
Milo
3 jaar geleden
 
0 +1 -0 -1
Hey,
ik zou juist graag willen dat mensen een klantnummer dat ze aangemaakt hebben invoeren bij cart.php en dan hij mee verzonden word... nu is er 1 probleem ik krijg hem neit me verzonden dit heb ik nu:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
      // Total
      $total = $total + $lineprice;         // Totaal updaten
    }
    ?>

<tr>
<td colspan="4">Totaal</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $total; ?>
</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2"> <input type="text" name="klantnummer" size="10" maxlength="10" /</td>
<td colspan="4"><input type="submit" value="Ververs" />
</td>
</tr>
</table>
<p>&bull; <a href="javascript:removeCart()">Winkelwagen leeghalen</a><br />
<p>&bull;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo "<a href='checkout.php?klantnummer=".$klantnummer."'>Afrekenen</a>"; ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>




PS voor de mensen die neit begrijpen hoe ze zon tabel moeten maken zal er binnen kort droppen voor jullie ;) begrijp namelijk vroeger ook nooiot en weet hoe erritant het is..

gr milo
Mieke
mieke
3 jaar geleden
 
0 +1 -0 -1
Hoi Elwin,

Complimenten voor deze webwinkel.

session_start(); hoort wel altijd op de 2e regel te staan, direct onder
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
Wanneer je dat niet doet, kan dat problemen veroorzaken.
Misschien zou je dat aan nog moeten aanpassen.
Ruliezz
ruliezz
3 jaar geleden
 
0 +1 -0 -1
Ik heb hem getest maar het updaten van de winkelwagen werkt niet.
Corwin
Corwin
3 jaar geleden
 
0 +1 -0 -1
Mooi script!

Zit alleen met het volgende probleem..
Ik werk zelf met USBwebserver en hier werkt de webshop perfect..
Zodra ik deze upload (Hosting2Go) gaat het verkeerd bij het toevoegen van het 2e artikel

Warning: Invalid argument supplied for foreach()

Ik heb alle tips hierboven al opgevolgd

Kan iemand helpen?
Sandra
Sandra
2 jaar geleden
 
0 +1 -0 -1
Hallo allemaal,

Ik ben bezig met een webwinkel en tot nu toe werkt de bovenstaande tutorial voor een leek als ik perfect :)
Helaas krijg ikwel steeds de volgende melding nadat ik een product heb toegevoegd (en word doorgestuurd naar de cart.php)

Er liggen 3 producten in de winkelwagen

Productnummer Productnaam Hoeveelheid Prijs p/s Totaal
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
in file /home/daydreamy/domains/aboutwestlife.com/public_html/cart.php on line 83

Kan iemand mij helpen?

Alvast bedankt!
Jaron T
Jaron T
2 jaar geleden
 
0 +1 -0 -1
Wat staat er op regel 83 van je cart.php script?
Sandra
Sandra
2 jaar geleden
 
0 +1 -0 -1
Dit is wat er nu staat:
(heb eigenlijk niets veranderd)

80 $sql = "SELECT productnaam, prijs
81 FROM Product
82 WHERE productnummer = ".$product[0] ;
83 $query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
84 $pro_cart = mysql_fetch_object($query);
85 $i++;
Jan-Jelle Kester
Jan-Jelle Kester
2 jaar geleden
 
0 +1 -0 -1
Mensen die met deze tutorial bezig zijn moeten er aan denken de uitgebreide SQL errors weg te halen als de webwinkel online gaat !!! Je wilt hackers natuurlijk geen uitgebreide info geven, en het staat ook iets minder netjes als je een harde mysql error te zien krijgt...
Tom Tom
Tom Tom
2 jaar geleden
 
0 +1 -0 -1
Sandra, er zit een fout in je query. Wijzig regel 82 eens als volgt:

WHERE productnummer = '.$product[0]' ";
Sandra
Sandra
2 jaar geleden
 
0 +1 -0 -1
Bedankt Tom! heb em inmiddels werkend gekregen, ben nu even aan het 'klooien' met het afreken stukje :)
Michiel
Michiel
2 jaar geleden
 
0 +1 -0 -1
Ik 'newbie' me een ongeluk.... heeft iemand deze tut ook uitgebreid met een mailfunctie? :-S
Victor Php
Victor Php
2 jaar geleden
 
0 +1 -0 -1
GEWELDIG:P

Ik ben voor mijn moeder een website aan het maken voor haar winkel in html en wat javascript.
Eigenlijk was de webwinkel meer een idee dan een praktijk, maar nu ik dit gevonden heb ga ik de hele dag er op zitten kijken totdat ik het snap:P
Plato Republic
Plato Republic
2 jaar geleden
 
0 +1 -0 -1
Hello mensen,
Ik kan geen producten toevoegen aan de database.

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
<?php
// checkout.php
session_start();

// In het script doen we het ook maar even stap voor stap.

// Stap 1, zet de order in de order tabel

$ordernr = mysql_insert_id(); // Die hebben we later nodig, is dus ordernr (bestelnr)

// Stap 2, winkelwagen splitten en in de database zetten

$wagentje = explode("|",$_SESSION['cart']);
foreach($cart as $products) {
  // Split
  /*
    $product[x] -->
       x == 0 -> product id
       x == 1 -> hoeveelheid
  */

  $product = explode(",",$products);
  
  $iSql = "INSERT INTO bestelregel
          (id, artnr, aantal)
          VALUES
          ("
.$ordernr.", ".$product[0].", ".$product[1].")";
}


echo "<p>De bestelling is toegevoegd!";
echo $iSql;
?>


Klanten vullen slechts een form, ze zijn niet geregistreerd. Als je ik dit als checkout gebruik, dan wordt er niets toegevoegd aan tabel: bestelregel.

Thanx
Maarten Bos
Maarten Bos
1 jaar geleden
 
0 +1 -0 -1
Ik probeer de productprijs per stuk per regel bij de order op te slaan alleen krijg het niet helemaal voor elkaar. Hoe zet ik de productprijs door vanaf de cart naar de checkout (bv als product[2])???

Alvast bedankt!
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
@Maarten
Is het per sé nodig om de stukprijs door de geven naar de checkout?
Je kunt ook bij de checkout als je de bestelling in de database gooit aan de hand van het productnummer de stukprijs ophalen uit de database en deze mee wegschrijven bij het opslaan van de bestelling.

Dus bij stap 2 vooraf prijs ophalen aan de hand van $product[0], en deze waarde toevoegen op regel 27 aan de insert.

Ik ben zelf bezig aan de hand van de tut (die zeer goed is!) bezig een webshop op te zetten, als ik klaar ben en je komt er nog niet uit, laat maar weten, dan kan ik je mijn code doorgeven.
Maarten Bos
Maarten Bos
1 jaar geleden
 
0 +1 -0 -1
Hey Tobias,
Ik heb het inderdaad zo gedaan als jij hebt aangegeven en het werkt. Bedankt voor het meedenken :)
Succes met je webshop!
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
Na 3 avonden en een zaterdag is het gelukt: Ik heb mijn eerste eigen webshop!
Ik had er gerekend op een maand werk, maar dankzij deze tut was ik in no-time klaar.
Alles overgetypt ipv knippen en plakken. Nu weet ik meteen hoe session werkt en wat je met explode kunt doen. Bedankt!

Ps. Er zitten nog wel wat typfouten in de tut, maar dat houd je scherp en moet je zelf nadenken wat er gebeurd
Ed Win
Ed Win
1 jaar geleden
 
0 +1 -0 -1
Tobias,

IK ben erg benieuwd hoe jij hem werkend heb gekregen.
Ik zit al 3 weken te broeden maar het lukt maar niet.
Is er ergens een zip te vinden met alle correcte bestanden.Het opzetje is erg mooi maar je moet hem wel debuggen voordat je echt kan aanpassen.
Ik mis ook het hele afhandel gedeelte.
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
@ Ed Win
Ik heb je een pm gestuurd
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
@Tobias,

Ik weet niet of je het geheim wilt houden, maar ik ben ook wel benieuwd hoe jij een shop implementatie heeft gemaakt.
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
1 +1 -0 -1
Als er genoeg interesse is kan ik het complete script posten in een zip-bestand.
Reken echter niet op al te professioneel programmeerwerk...
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
Dat geeft niet. Ik ben gewoon benieuwd:)
Milo S
Milo S
1 jaar geleden
 
0 +1 -0 -1
Niels niet alleen i guess, vooral omdat ik dit script hier ook heb gepost (werkend :P)
Zou je hem naar mijn kunnen sturen?
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
@Milo S:
Zie de pm
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
@Tobias

Ik heb de code doorgenomen.. Maar ik heb nog wat commentaar voor je..

Misschien dat ik samen met Milo het concept kan verbeteren?
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
1 +1 -0 -1
Zie de pm.
De shop is volledig freeware, dus doe ermee wat je wilt
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
Gezien. Ik zal vanavond alvast een stukje maken:)
Ben de ronde
ben de ronde
1 jaar geleden
 
0 +1 -0 -1
Mensen, het probleem dat ik heb, is dat ik soms 2x op (x) moet drukken voordat mijn product zich verwijdert uit het winkelmandje! hierbij heeft hij blijkbaar wel het script gebruikt, want hij geeft wel de goede header aan.. hebben jullie hiervoor een oplossing? of ben ik de enigste met dit probleem!

let me know please ;)!
Ben de ronde
ben de ronde
1 jaar geleden
 
0 +1 -0 -1
Daarbij, kan verwijdert hij soms het verkeerde product.. ipv het 1e product, verwijdert die het laatste product in het winkelmandje,

bij cart_update.php verwijdert hij af en toe me hele mandje?

komt dit misschien omdat ik als header:

<code>
$back = $_SERVER['HTTP_REFERER'];

header('Location: $back'); </code>

gebruik?
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
Zou best kunnen. Maar het beste is om een nieuw topic te openen en wat relevante code te laten zien.. Nu is het gokken.
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
Ik gebruikte $_SERVER['HTTP_REFERER'] om te zien waar mijn klanten vandaan komen. Dit werkt in 95% van de gevallen niet! Dus 95% van alle mogelijke klanten kunnen niet gebruik maken van je webshop
Ben de ronde
ben de ronde
1 jaar geleden
 
0 +1 -0 -1
ja, in IE deed hij het idd niet.. MAAR merkwaardig is dat hij het op de pagina cart_update.php het wel deed.. Waardoor ik zoiets van van, laat ik alle codes daarin zetten..

Maar goed, na dagen kl*te..., ben ik toch maar bezig om mijn winkelmandje met de hand van een db te maken;)! waarbij hij het winkelmandje met session_id(); werkt;)!

Maar toch vind ik het apart dat me winkelmandje niet optimaal werkte..
Duncan Idaho
Duncan Idaho
1 jaar geleden
 
0 +1 -0 -1
Voor een schoolproject over een webshop ben ik aan de tutorial begonnen, dit gaat tot nu toe erg goed.
De meeste functionaliteiten die hier beschreven staan heb ik werkend gekregen, wat echter nog niet werkt is het aanpassen van het winkelmandje en daarbij een artikel verwijderen.
Hierbij krijg ik de foutmelding : Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\delete_cart_item.php on line 6

De auteur heeft in zijn commentaar aangegeven dat er nog een karakter weggehaald moet worden | echter ook als ik dat aanpas krijg ik het nog niet werkend.

Kan iemand mij de goede richting op wijzen ?
Quote:
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
<?php
// delete_cart_item.php
session_start();

// Variables
if(!is_numeric($_GET['item']) $item = $_GET['item'];
else exit ('Pff... rot op!');

// Wederom, kijken of winkelwagen bestaat
if (empty($_SESSION['cart']))
{

  // Geen winkelwagen? Uitzetbeleid! :)
  header('Location: index.php');
}
else {
  // Winkelwagen uit elkaar plukken
  $cart = explode('|',$_SESSION['cart']);

  // Tellen (eenzijdig hè?)
  $count = count($cart);

  // kijken of het in de winkelwagen staat
  foreach($cart as $products) {
    // Split
    /*
      $product[x] -->
         x == 0 -> productnummer
         x == 1 -> hoeveelheid
    */

    $product = explode(',',$products);
    $i++;
    if ($i != $item) {  // Dus als die niet die is die verwijderd moet worden
      // Var toevoegen aan nieuwe winkelwagen

      $inNewCart = $product[0].','.$product[1];
      $newCart = $newCart.'|'.$inNewCart;
    }
  }

  
  // Luiheid, blijheid... er staat nog een | vooraan, even weghalen (had natuurlijk ook eerder
  // een controle kunnen doen en die daar niet plaatsen.. :)

  $newCart = substr($newCart,1);
}


// Verwijder de 'oude' winkelwagen en bouw een nieuwe
session_unset($_SESSION['cart']);
$_SESSION['cart'] = $newCart;

// En terugsturen
header('Location: cart.php');
?>
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
if(!is_numeric($_GET['item']) $item = $_GET['item'];
else exit ('Pff... rot op!');

Die klopt niet:)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if( is_numeric( $_GET['item'] ) )
{

// etc
}
Duncan Idaho
Duncan Idaho
1 jaar geleden
 
0 +1 -0 -1
Bedankt voor de snelle reactie Niels, ik heb het script aangepast en ik krijg geen crashes meer.
Echter verminderd de waarde ook niet als ik op de knop druk. Moet ik dat nog ergens specificeren ?

Mijn code ziet er nu zo uit.

Quote:
if( is_numeric( $_GET['item'] ) )
{
// etc
}

else exit ('Pff... rot op!');
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
Je kan die else ook gewoon wel laten.. En dan de rest van je code tussen de if zetten.
R r
r r
1 jaar geleden
 
0 +1 -4 -1
wat voor voor onzin is dit je plaats opzet van webwinkel. e je krijg niet eens een goede index enzovoort
later staat er onder dit is niet voor noobs!
waarom zet je uberhaupt op de site als opzet van winkelmandje als je niet eens een echt werkend script er kan zetten omdat je webserver niet op school toegankelijk is wie is er dan een noob als je niet eens je eigen script kan testen !
Elwin - Fratsloos
Elwin - Fratsloos
1 jaar geleden
 
2 +1 -0 -1
@r r
Heb je je nou speciaal geregistreerd om deze onzin op de site te knallen? Dan had je het ook wel kunnen laten...

Je reactie is niet alleen respectloos, stijlloos en doorspekt van Nederlands taalgebruik op het niveau van een kleuter, het is ook nog eens geheel inhoudloos en bevat tevens onwaarheden.

Door de beperkte zinsopbouw en het zo goed als geheel ontbreken van leestekens heb ik helaas erg grote moeite je reactie serieus te nemen, voor zover ik al begrijp wat je precies bedoeld met deze onzin. Niettemin kan ik wel reageren op je laatste veronderstelling: het niet kunnen testen van de code.

Dit (deze tutorial) is, ook overduidelijk in de tutorial vermeld, geen script. Dit was ook absoluut niet de insteek van deze tutorial. Deze is louter bedoeld om de theorie er achter uit te leggen.

Dat deze theorie niet de beste is ben ik mij ten zeerste van bewust. In de zes jaar nadat ik bovenstaande tutorial heb geschreven heb ook ik nog het een en ander geleerd.
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
1 +1 -1 -1
@r r
Helemaal gelijk, waardeloze tutorial. Hij heeft mij alleen maar geholpen om zelf een complete webshop te bouwen...
Bram Boos
Bram Boos
1 jaar geleden
 
0 +1 -0 -1
Ik vind beide reacties van zowel Tobias als rr gewoon respectloos. Als je dit waardeloos vind heb ik een ding te vermelden: 'Schrijf er zelf een!'.

Verder begrijp ik het wel dat beginnetjes graag kant en klare scripts gebruiken, deze aan elkaar plakken en dan zeggen dat het veilig is en op internet zetten. Dan zijn ze ook nog verbaasd dat ze gehackt zijn...

Maar goed waar het om gaat: een tutorial is geen script, een tutorial is om wat van te leren en je op ideeën te brengen.

EDIT:
Zoals te lezen is in het nawoord:
Quote:
Waarom dan deze tutorial?
Nou, als opzetje voor hen die een winkelsysteem willen bouwen. Ze hebben er dan veel werk aan, want er is nog niets om bijvoorbeeld oude bestellingen te bekijken. Maar bij deze tutorial gaat het vooral om het idee, de opzet.
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
@Bram Boos:
Even voor de duidelijkheid, mijn reactie was zwaar sarcastisch.
Dankzij deze tutorial heb ik in 2 weken een eigen webshop in elkaar gezet, waar ik anders een paar maand over zou hebben gedaan
Bram Boos
Bram Boos
1 jaar geleden
 
0 +1 -0 -1
@Tobias;

Oke, dan heb ik het verkeerd opgevat!
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
@Bram Boos: Geeft niet, ik zal het wel niet duidelijk hebben geschreven
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
2 +1 -0 -1
@Tobias.. De sarcasme droop er vanaf.. dat las ik direct :)
Shynn lee
shynn lee
1 jaar geleden
 
0 +1 -0 -1
Uit de tutorial de winkelwagen (cart.php) krijg ik de volgende melding: Notice: Undefined variable: i in C:\wamp\www\mijnwebwinkel\cart.php on line 76. Wat moet hier de juiste waarde zijn?
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
ik denk dat je ergens i hebt staan ipv $i
Shynn lee
shynn lee
1 jaar geleden
 
0 +1 -0 -1
Hele doc. afgezocht niks gevonden waar i staat ipv $i of iets anders. Voor de rest werkt cart.php goed. Zie onderstaande:
Quote:
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
<?php
// cart.php
session_start();

// Kijk of er iets in de winkelwagen zit
if (empty($_SESSION['cart'])) {
  echo '<p>Mooi verhaal! Er zit niets in je winkelwagen!</p>\n';
  echo 'Terug naar: ' . '<a href=\'etalage.php\'>etalage</a>';
}
else {
  // Exploden
  $cart = explode('|',$_SESSION['cart']);
  
  // Tellen inhoud winkelwagen
  $count = count($cart);
  if ($count == 1) {
    echo '<p>Er staat 1 product in je winkelwagen.</p>\n';
  }
else {
    echo '<p>Er staan '.$count.' producten in je winkelwagen</p>\n';
  }
               // Ach, gewoon leuke mededeling
  
  // Wat javascriptjes voor het weghalen van producten
  // En daarna het begin van een tabel met de inhoud

  ?>

<script type='text/javascript'>
<!--
function removeItem(item) {
var answer = confirm ('Weet je zeker dat je dit product wilt verwijderen?')
if (answer)
window.location='delete_cart_item.php?item=' + item;
}

function removeCart() {
var answer = confirm ('Weet je zeker dat je de winkelwagen wilt leeghalen?')
if (answer)
window.location='delete_cart.php';
}
//-->
</script>
<form method='post' name='form' action='update_cart.php'>
<table>
<tr>
<td>Productnaam</td>
<td>Hoeveelheid</td>
<td>Prijs p/s</td>
<td>Totaal</td>
<td>&nbsp;</td>
</tr>
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
<?php
  
    // Totaal (komt later wel terug)
    $total = 0;

    // Show cart
    foreach($cart as $products) {
      // Split
      /*
        $product[x] -->
           x == 0 -> product id
           x == 1 -> hoeveelheid
      */

      $product = explode(',',$products);

      // 1. Verbinding maken
    $db=mysql_connect('localhost', 'root', '')
            or die('Helaas, connectie mislukt ' . mysql_error());
            
    // 2. Database kiezen voor mysql commando's:
    mysql_select_db('webwinkel')
    or die('Database bestaat niet ' . mysql_error());

      // Get product info
      $sql = 'SELECT productnaam, prijs
             FROM product
             WHERE productnummer = '
. $product[0];  // Weet je nog, uit die sessie
      $query = mysql_query($sql) or die (mysql_error().'<br>in file '.__FILE__.' on line '.__LINE__);
      $pro_cart = mysql_fetch_object($query);
      $i++;

      echo '<tr>\n';
      echo '<td>'.$pro_cart->productnaam.'</td>\n';     // naam
      echo '<td><input type=\'hidden\' name=\'productnummer_'.$i.'\' value=\''.$product[0].'\' />\n'; // wat onzichtbare vars voor het updaten
      echo '<input type=\'text\' name=\'hoeveelheid_'.$i.'\' value=\''.$product[1].'\' size=\'2\' maxlength=\'2\' /></td>\n';
      echo '<td>'.$pro_cart->prijs.'</td>\n';
      $lineprice = $product[1] * $pro_cart->prijs;      // regelprijs uitrekenen > hoeveelheid * prijs
      echo '<td>'.$lineprice.'</td>\n';
      echo '<td><a href=\'javascript:removeItem('.$i.')\'><img src=\'prullenbak.gif\'/></td>\n'; // Verwijder, mooi plaatje van prullebak ofzo
      echo '</tr>\n';
      

      // Total
      $total = $total + $lineprice;         // Totaal updaten
    }
    ?>

<tr>
<td colspan='3'>Totaal</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $total; ?>
</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='2'>&nbsp;</td>
<td colspan='4'><input type='submit' value='Ververs' /></td>
</tr>
</table>
</form>
<p>&bull; <a href='javascript:removeCart()'>Winkelwagen leeghalen</a><br />
&bull; <a href='checkout.php'>Afrekenen</a></p>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>
Tobias Tobias
Tobias Tobias
1 jaar geleden
 
0 +1 -0 -1
ik kan niks vinden, sorry
Niels Kieviet
Niels Kieviet
1 jaar geleden
 
0 +1 -0 -1
i wordt niet gedefinieerd? En dan wil je direct ++ doen? Daar zou het aan kunnen liggen ;) Maar goed, eigenlijk is dit een vraagje voor het forum.
Shynn lee
shynn lee
1 jaar geleden
 
0 +1 -0 -1
i wordt inderdaad niet gedefinieerd zoals $i='';. Probleem opgelost. Bedankt!!!!
Ocirina Ocirina
Ocirina Ocirina
11 maanden geleden
 
0 +1 -0 -1
Ik ben nu ook bezig hiermee.
Heb de volgende problemen, mischien heeft iemand hier ook last van.
1ste keer in winkel wagen is alles netjes, 2de x error met explode, 3de x is de winkelwagen leeg?

Iemand enig idee?
Victor Php
Victor Php
11 maanden geleden
 
Ocirina Ocirina
Ocirina Ocirina
11 maanden geleden
 
0 +1 -0 -1
Thanks!
Ik zal er proberen uit te komen!
Niels Kieviet
Niels Kieviet
11 maanden geleden
 
1 +1 -0 -1
@Victor PHP
Qua OO slaat mijn script de plank nog best ver mis.
Om er even een kleine post aan de wijden:

De classe shoppingbag / winkelwagen is niet echt OO. Je kan beter een klasse order hebben en een klasse order item. In order houd je dan een array met order item objecten bij.

Als ik deze week even tijd heb zal ik een tutorial / script versie 2 maken dat was ik al van plan.

EDIT:

Misschien dat er uit dit topic wat goeds voortkomt? (code, opzet, etc)
Robert  dat ben ik
Robert dat ben ik
10 maanden geleden
 
0 +1 -0 -1
Bedankt voor deze tutorial

Ik heb dit script uitgeprobeerd en helemaal uitgebouwd

maar 1 ding werkt niet goed en dat is het verwijderen van producten

alles werkt naar behoren toevoegen bedragen en kortingen berekenen


ik heb bijvoorbeeld 5 producten staan in me sessie
en als ik dan zeg ik wil er 1 uit halen een willekeuringe dus dan pakt ie bij de eerste keer niet dan moet ik als nog een keer klikken en dan werkt ie wel


mar heb ik maar 1 product dan werkt het prima
hoe kan dit opgelost worden? het werkt met een stukkie javascript.

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
<script type='text/javascript'>
<!--
function removeItem(item) {
    var answer = confirm ('Weet je zeker dat je dit product wilt verwijderen?')
    if (answer)
    window.location='delete_cart_item.php?item=' + item;
}

function removeCart() {
    var answer = confirm ('Weet je zeker dat je de winkelwagen wilt leeghalen?')
    if (answer)
    window.location='delete_cart.php';
}
//-->
</script>


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
<?php
session_start();

$item = $_GET['item'];

if (empty($_SESSION['cart']))
{

    header('Location: index.php');
}

else
{
    $i=0;
    $cart = explode('|',$_SESSION['cart']);
    $count = count($cart);
    foreach($cart as $products)
    {

        $product = explode(',',$products);
            $i++;
            if ($i != $item)
        {

                  $inNewCart = $product[0].','.$product[1];
                  $newCart = $newCart.'|'.$inNewCart;
            }
      }
    
      $newCart = substr($newCart,1);
}

session_unset($_SESSION['cart']);
$_SESSION['cart'] = $newCart;
header('Location: demo1.php');
?>
Victor Php
Victor Php
10 maanden geleden
 
1 +1 -0 -1
Kun jij niet lezen? De reactie voor jou zeggen dat er nieuwe (betere) tutorials/scripts bestaan dan deze. Deze is van 6 jaar geleden!

Om te reageren heb je een account nodig en je moet ingelogd zijn.