Avatar billede -veile- Nybegynder
20. oktober 2006 - 00:33 Der er 5 kommentarer

Indkøbskurv!

Hey

Jeg er igang med at lave en indkøbskurv, men jeg har nogle spørgsmål inden jeg går for alvor igang med at kode!

Hvordan kan med en session basert indkøbkurv tilføje produkter i shoppen online? altså uden at skulle ind i sin php fil og ændre i koden hver gang der skal et nyt produkt i?

Eller vil det være smartest og lave det med en db, hvor man ligger alle produkter over i en tabel, og hvor man så registrer en session efter hvert produkt som smides i indkøbskurven ?

eller er der andre forslag som er bedre! indkøbskurven skal udvikles proffesionelt , men mangler ideer til hvordan den skal designes kode messigt?

// Jacob veile
Avatar billede yHec Novice
20. oktober 2006 - 01:14 #1
Du skal nok have et databasebaseret varelager. Når du lægger i kurven, laver du et lookup, og tilføjer resultatet til indkøbskurven.

Du kan  vedligeholde varelageret med en insert into sætning fora t tilføje, en update sætning for at vedligeholde og en delete for at slette.

Hen ad vejen kan du jo også lave noget ordrestyring ved at lave en kundedatabase.

Det er det jeg har gjort, og det kører helt fint!

/y
Avatar billede -veile- Nybegynder
20. oktober 2006 - 01:19 #2
Lookup hver det lige ?
Avatar billede coderdk Praktikant
20. oktober 2006 - 01:22 #3
Du skal naturligvis bruge sessions, det er klart nemmest. Som y siger, så skal varerne være i en database, så kan du tilføje noget til brugerens kurv ved at sige:

<?php

session_start();

if ( empty( $_SESSION['kurv'] ) )
{
  $_SESSION['kurv'] = array();
}
if ( array_key_exists( $_POST['varenummer'], $_SESSION['kurv'] ) )
{
  $_SESSION['kurv'][$_POST['varenummer']]++;
}
else
{
  $_SESSION['kurv'][$_POST['varenummer']] = 1;
}

Så har du et array som ser nogenlunde sådan ud:

$_SESSION
  kurv
      123 = 1
      456 = 4
      789 = 2

Du kan også vælge at gemme mere i session, som stkpris, navn osv, men så ville jeg ændre lidt på strukturen:

$_SESSION['kurv'][$_POST['varenummer']] = array();
$_SESSION['kurv'][$_POST['varenummer']]['antal'] = 1;
$_SESSION['kurv'][$_POST['varenummer']]['navn'] = $_POST['navn'];
$_SESSION['kurv'][$_POST['varenummer']]['pris'] = $_POST['pris'];

og så tælle antallet op med

$_SESSION['kurv'][$_POST['varenummer']]['antal']++;

Jeg ville ikke selv gemme pris, det ville jeg hive ud af databasen når jeg skulle bruge det...
Avatar billede -veile- Nybegynder
20. oktober 2006 - 13:14 #4
hmm se alt sammen meget fint ud! og vil da os gå i gang med det samme!

Men jeg ved jo der er krav om HØJ sikkerhed ang. indkøbskurv, kan man lave nogen former for Hacking i en kurv, Hvis man ikk lige har kundedatabase ?
Avatar billede coderdk Praktikant
20. oktober 2006 - 13:21 #5
Det er rimelig besværligt at lave det man kalder session-hijacking bare for at ændre en anden kundes indhold i kurven - Så det ville jeg ikke bekymre mig om :) Men sørg for at bruge mysql_real_escape_string osv når du laver queries med værdier som brugerne potentielt har kunnet pille ved :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester