login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session part 2

Offline Stefaan - 14/04/2008 09:26
Avatar van StefaanNieuw lid Ok... Ik heb dus eerder een bericht gepost.

->

Beste,

Ik heb een script (superklein webshop script) gemaakt. Ik zet daar de id's van de artikelen in een session. $_SESSION['cart']. Ik zet ze daar gescheiden door een | en explode ze dan om ze terug uit elkaar te halen.

Alles werkt lekker locaal (op mijn pc dus) maar naar de server loopt alles verkeerd. Ik heb de session geprint en lokaal krijg ik "id1|id2|id3...", dus no problem. Op de server krijg ik hetzelfde maar als ik een andere pagina open dan print de session "Array"... raar want alle pagina's worden ge-include( index.php) en lokaal werkt het wel...

iemand een oplossing??

<-

Nu heb ik met wat "foefelen" en de benadering van de sessie's te wijzigen toch dat ding aan de praat gekregen (dus op oplossing geklikt). jammer genoeg weet ik nog niet precies hoe het komt.. Anders niet de volgende vraag.

Ik heb een overzichtje van de bestelling op http://www.nove...ub=stoelen (ff wat artikelen in mandje stoppen en dan klikken op "winkelmandje"). Ik heb bovenaan een var_dump van mijn sessie waar de artikelen inzitten (de id's). $_SESSION['cart'] as is. Als ik nu in het overzicht wil een artikel verwijderen dan krijg ik weer ide verdomde array (zie var dump)... Ik ben hopeloos :p sufgezocht en niks gevonden...

Mijn code om te verwijderen:
  1. if ($webshopbewerking == "verwijderen")
  2. {
  3. $id = $_GET['id'];
  4. $sessiecart = $_SESSION['cart'];
  5. $newcart = "";
  6.  
  7. $cart = explode("|", $sessiecart);
  8.  
  9. foreach ($cart as $products)
  10. {
  11. if ($products != $id)
  12. $newcart = $newcart . "|" . $products;
  13.  
  14. $test = substr($newcart, 0, 1);
  15.  
  16. if ($test == "|")
  17. $newcart = substr($newcart, 1);
  18. }
  19.  
  20. session_unset($_SESSION['cart']);
  21. $_SESSION['cart'] = $newcart;
  22. }

2 antwoorden

Gesponsorde links
Offline Ibrahim - 14/04/2008 10:35
Avatar van Ibrahim PHP expert Waarom maak je zo'n lastige constructie ? Een sessie in PHP is gelijk als elk andere variabele. Dus het kan ook een Array bevatten.

  1. /**
  2.  * Als een winkelwagen niet bestaat, dan moet je hier eentje aanmaken.
  3.  * Je ziet dat ik een array aanmaak voor de winkelwagen, later zul
  4.  * je zien waarom.
  5.  */
  6. $_SESSION['winkelwagen'] = array();
  7.  
  8. /**
  9.  * Nu de winkelwagen aangemaakt is, laten we hem vullen.
  10.  * Ik heb twee producten, met Id 1 en Id 2.
  11.  * Ik heb van product-Id 1, 4 producten besteld.
  12.  * Van product-Id-2 heb ik er 6 besteld.
  13.  */
  14. $_SESSION['winkelwagen'][1] = 4;
  15. $_SESSION['winkelwagen'][2] = 6;
  16.  
  17. /**
  18.  * Nu wil ik graag de inhoud weergeven van mijn winkelwagen.
  19.  * Het aantal per product, en de totale aantal.
  20.  */
  21. foreach ($_SESSION['winkelwagen'] as $productId => $quantity) {
  22.  
  23. echo 'U heeft van product-Id <strong>' . $productId . '</strong> een aantal van <strong>' . $quantity . '</strong> besteld';
  24. echo '<br />';
  25.  
  26. }
  27.  
  28. echo 'U heeft in totaal <strong>' . array_sum( $_SESSION['winkelwagen'] ) . '</strong> producten besteld';
  29.  
  30. /**
  31.  * Zoals je kunt zien, is het veel overzichtelijker om een array te gebruiken,
  32.  * i.p.v. een string die je dan explode. Ook kun je hier wat meer informatie
  33.  * opslaan. Als u meerdere informatie per product wil opslaan, gebruik
  34.  * je gewoon een 2-dimensionele array:
  35.  */
  36.  
  37. $_SESSION['winkelwagen'][1] = array(
  38. 'informatie1' => 'informatie 1',
  39. 'informatie2' => 'informatie 2',
  40. 'quantity' => 4
  41. );
  42.  
  43. /**
  44.  * Hier loop je dan doorheen om alle informatie te krijgen.
  45.  * Maar zoiets kun jij ook wel verzinnen, veel succes ;-)
  46.  */
  47. ?>
Offline Stefaan - 14/04/2008 11:39
Avatar van Stefaan Nieuw lid Ga ik zeker vanavond es bekijken!!

Maar waarom werkt mijn ding dan lokaal en niet op de server?
De phpinfo's zijn hetzelfde (als ik de sessions) bekijk dan toch.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s