I have been experimenting with a very simple shopping cart which emaultes another product we can no longer use (cart provider does not handle our payment processor).
In the following code CGI::Session appears to be not writing the session back to the MySQL database when I do a 'clear' cmd. I query the sessions table on the MySQL monitor. It has the session with say a number of items in the CART variable. I execute the 'clear' command from the borwaser and it displays an empty cart. BUT - I check the db table and it hasn't changed! So when I do another add I have all the previous items as well as the new one added after the 'clear'.
Here is a snippet of the code showing one sub that works and one that doesn't!
The complete code is available on my scratchpad jdtoronto's scratchpadsub clrCart { my ($cgi, $session) = @_; my $cart = $session->param("CART") || []; $cart = []; $session->param("CART", $cart); return displayCart($cgi, $session); } sub addItemCart { my ($cgi, $session, $orderitem) = @_; &getItemForCart($cgi, $session); # get current cart contents my $cart = $session->param("CART") || []; # add selected item push @{$cart}, $orderitem; # update the CART in the session $session->param( "CART", $cart ); return displayCart($cgi, $session); }
Thanks for looking! ....john
In reply to CGI::Session not writing to database? by jdtoronto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |