[PHP] Session functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een beetje met een webwinkel aan het spelen, en
als mensen op een product klikken zet mn script een nieuwe
waarde in een sessie zodat deze nog niet direct in de db komen.
Echter als mensen 2 keer op hetzelfde product klikken komen deze
ook 2 keer in het winkelmandje te staan, en eigenlijk moet er dan een fout
komen als ze voor de tweede keer op een product komen met zoiets als:
"dit product is reeds toegevoegd"

de code die de sessie uitvoerd
PHP:
1
2
3
4
5
6
7
8
9
10
$add = $_GET['add'];

if($add=="more"){
session_start();
$next = $_GET['next'];
$addid = $_GET['addid'];
if(!is_array($_SESSION['test'])){ $_SESSION['test'] = array(); }
$_SESSION['test'][$next] = $_GET['addid']; 
header("location: index.php?pid=".$_GET['pid']);
}


Via deze link wordt de sessie als het ware aangestuurd:
PHP:
1
producten.php?add=more&next=$nextsess&addid=$id&pid=".$_GET['pid']."


Ik kom er zelf niet meer uit en ik heb ook geen resultaten geboekt.
Alvast bedankt!

[ Voor 9% gewijzigd door Verwijderd op 22-12-2004 15:37 ]


Acties:
  • 0 Henk 'm!

  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 15-09 21:46
Wat misschien handiger is om wat structuur in je sessies te brengen. Je hebt bijv een sessie 'producten' waar je alle reeds geselecteerde producten in gooit.

PHP:
1
$_SESSION['producten'][$productId]

Je zou daar dan eventueel nog een array van kunnen maken met wat details. Maar je kunt nu checken of hij reeds geselecteerd is (je checkt dan of de key (het ID v/h product) al bestaat, met bijv. array_key_exists).

[ Voor 6% gewijzigd door Koeniepoenie op 22-12-2004 15:39 ]

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337


Acties:
  • 0 Henk 'm!

  • Wussie
  • Registratie: Maart 2003
  • Laatst online: 30-01-2023
kan je niet een tellertje maken met sessie waarden die aangeven welke pid's er al in het winkelmandje zitten, en iedere keer als je een nieuwe toevoegd dat ie dan kijkt of de pid er al is of niet? :x

@koeniepoenie, maak je met dat $_SESSION['producten'][$productid] nou een array aan als sessie variabele? (ben nog beetje noobish nml :P maar die functie lijkt me wel erg handig dan :D)

[ Voor 34% gewijzigd door Wussie op 22-12-2004 15:42 ]


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 15-09 18:04

TrailBlazer

Karnemelk FTW

mischien stomme vraag maar wat dan als ze echt 2 keer hetzelfde willen bestellen :?

Acties:
  • 0 Henk 'm!

  • Equator
  • Registratie: April 2001
  • Laatst online: 09-09 15:29

Equator

Crew Council

#whisky #barista

TrailBlazer schreef op woensdag 22 december 2004 @ 15:41:
mischien stomme vraag maar wat dan als ze echt 2 keer hetzelfde willen bestellen :?
Meestal kan je dan alter het aantal nog opgeven. Ik denk wel dat het slim is om foutjes af te vangen. Als mensen perongeluk 2 keer klikken adt ze achteraf niet voor het dubbele bedrag komen te staan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TrailBlazer schreef op woensdag 22 december 2004 @ 15:41:
mischien stomme vraag maar wat dan als ze echt 2 keer hetzelfde willen bestellen :?
Bij afrekenen kunnen ze het aantal opgeven ;)

Acties:
  • 0 Henk 'm!

  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 15-09 21:46
Wussie schreef op woensdag 22 december 2004 @ 15:40:
@koeniepoenie, maak je met dat $_SESSION['producten'][$productid] nou een array aan als sessie variabele? (ben nog beetje noobish nml :P maar die functie lijkt me wel erg handig dan :D)
Ja, een sessie kun je gewoon een array meegeven. Je kunt dan een array maken zoiets als deze:
PHP:
1
$_SESSION['producten'][$productId] = array('prijs' => 12.50, 'aantal' => 1); // etc.

Op $productId komt uiteraard het ID van het product te staan. Als mensen dan willen bestellen check je met array_key_exists() of de array al bestaat (en eventueel het aantal ophogen).
PHP:
1
2
3
4
5
6
if (array_key_exists($hetID, $_SESSION['producten']) {
  // hij bestaat al
}
else {
  // hij bestaat nog niet, aanmaken..
}

[ Voor 7% gewijzigd door Koeniepoenie op 22-12-2004 16:34 ]

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337

Pagina: 1