WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Kundvagnen tappar artiklar (https://www.wn.se/forum/showthread.php?t=488)

matte99 2003-09-29 18:12

Nån som vet i vilken ände man ska börja felsöka när jag får felet att kundvagnen tappar varorna ungefär efter 1-2 minuter?
utgångsdatumet på cookien har jag satt på 98000 sekunder så kan det ju inte vara.
Är novis på php så all hjälp skulle uppskattas

defaultsesson inställingarna ser ut så här om det kan hjälpa?

Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_pat /tmp /tmp
session.serialize_handler php php
session.use_cookies On On

orreborre 2003-09-29 21:08

Har du session_start(); högst upp på alla sidor?
Det skulle kunna vara en lösning på problemet...

matte99 2003-09-29 22:20

Tack för ditt svar
Så här ser koden ut högst upp i shoppingcart.php, ser inte den koden du föreslog nånstans? Ser den riktig ut?

if(!$session && !$ShoppingCart) //make sure this hasn't already been
established
{
$session = md5(uniqid(rand())); //creates a random session value

// sets a cookie with the value of session.
// if it exists that is used

// delete sessions more than 2 days old
$today_date=date("Ymd");
$expired_date = $today_date - 20;
mysql_query("DELETE FROM ".$prefix."store_shopping WHERE
date>='$expired_date'");

//set the cookie to remain for 2 days
SetCookie("ShoppingCart", "$session",time()+$site_cookie);

orreborre 2003-09-29 22:51

Hej!

Jag ser inte $site_cookie definierat någonstans, om detta är fallet så går cookien ut i samma sekund som den sätts.

Testa att skriva
SetCookie("ShoppingCart", "$session",time()+(2*24*60*60));
istället för
SetCookie("ShoppingCart", "$session",time()+$site_cookie);
så ska den hålla i 2 dagar...

Jag skulle dock föreslå att du gör om systemet och lagrar artiklarna i sessionvariabler istället, då inte alla accepterar cookies.

Mvh

matte99 2003-09-29 23:13

Hej,

"Jag ser inte $site_cookie definierat någonstans"

Variablen ovan finns definierad i index.php och är satt till 86400
I index.php finns även denna koden
include("shoppingcart.php");,

så jag antar att det finns en koppling mellan index och shoppingcart
Bör jag ändå pröva det du föreslog?

orreborre 2003-09-29 23:33

Då kan jag inte se varför cookien skulle tappa sitt värde efter 2 minuter...
Du kan ju prova att anropa cookien med:
$_COOKIE['ShoopingCart'];
istället för
$ShoppingCart;

Jag tycker att du ska byta till sessions, för de som inte tillåter cookies kommer inte at kunna lägga saker i kundvagnen.
Men då kommer ni inte kunna ha saker sparade i 2 dagar hos användare som lämnar sidan, men jag ser ingen mening med det.
Att använda riktiga sessions är enkelt och man slipper sätta egna cookies.


Alla tider är GMT +2. Klockan är nu 17:19.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson