Newsgroup: it.comp.www.php
Titolo: sessioni chrome e safari

Buongiorno a tutti... ho un problema che non riesco a spiegarmi.
Sembra che i browser chrome e safari trattino le sessioni diversamente da IE 
e firefox.
Ma le sessioni non le gestisce il server?
Non capisco.
Ad ogni modo, questa è la questione:
http://www.magnamare.com
Se metto un articolo nel carrello (quantità : 1)
e poi, a destra, clicco su "inoltra l'ordine"
con firefox e IE trovo quantità: 1
con chrome e safari trovo quantità: 2
il carrello viene gestito con una sessione, archiviata in un file.
Il fatto è che se leggo questi file o faccio un dump di $_SESSION trovo che 
effettivamente quello di chrome ha quantità: 2, quello di firefox ha 
quantità: 1
Ma come è possibile? le sessioni non dovrebbe gestirle il server, 
indipendentemente dal browser?
E soprattutto: come risolvo?
Grazie
Cristiano C

 indipendentemente dal browser?
Le sessioni sono gestite dal server, ma sulla base degli input che gli 
vengono mandati dal browser. Nel tuo caso sento puzza di AJAX poco 
compatibile....
-- 
g4b0, linux user n. 369000
http://brosulo.net

 ha scritto nel messaggio 
news:i0hf1i$s20$2...@speranza.aioe.org...


 shop_ins=codice_articolo
Devi vedere come hai settato le scadenze dei cookie di sessione.
Prova a ripartire da zero con una session_destroy() e durante i test fatti una
pagina php di servizio che, se caricata, nuclearizza la sessione
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
There ain't no such thing as a free lunch.

 ha scritto nel messaggio 
news:i0hfms$uhr$1...@tdi.cu.mi.it...


 scusa... "nuclearizza"?
annienta, distruggi, cancella, rimuovi, elimina, annulla
fai una pagina killsession.php cosi' fatta
<?php
session_start();
session_destroy();
header('Location: index.php'); // o la tua pagina principale
?>
In quel modo, se vai su quella pagina sei sicuro di ripartire da una situazione
pulita dal punto di vista della sessione.
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Committee: a life form with six or more legs and no brain.

 pulita dal punto di vista della sessione.
mmmmhhh ... sei sicuro sicuro :-) ??
Il manuale di php specifica che in quel modo distruggi i dati della 
sessione ma non le variabili associate e consiglia di aggiungere un bel 
unset oppure un $_SESSION = array()
Vedi
http://php.net/manual/en/function.session-destroy.php
It does not unset any of the global variables associated with the 
session, or unset the session cookie. To use the session variables 
again, session_start() has to be called.
In order to kill the session altogether, like to log the user out, the 
session id must also be unset. If a cookie is used to propagate the 
session id (default behavior), then the session cookie must be deleted. 
setcookie() may be used for that.
ciao
Mauro

 }
Forse c'è un doppio submit, aggiungi una funzione di logging a questa 
funzione ed eventualmente un timer breve in modo che una submit 
effettuata nella stessa sessione in meno di un certo tempo, ad esempio 2 
secondi, non venga eseguita.
In questo modo dovresti risolvere subito e hai tempo per vedere quale 
sia il problema.
Ad ogni modo per quanto può valere ho aggiunto "777 Dalmazia, Istria e 
Montenegro" e vedo un solo oggetto nel mio carrello, prima volta 
assoluta che apro il sito, Chrome 5.0.375.86 su SnowLeopard.

Cristiano C. ha scritto:

Ho provato con Firefox, Chromium e Opera, funziona con tutti, un click, 
un solo articolo
Ho provato poi da browser su cellulare android e da qui stavolta me ne 
metteva 1 nel carrello ma quando vado a inoltrare l'ordine ne trovo 2



guarda che c'e anche un altro errore
fai prev next ne aggiunge 1
quindi stai usando GLOBALS ON che e' MALE
if(!empty($_POST['codice'])){
  if($POST['co']==$_SESSION['co']){
    if(!empty($_SESSION['carrello'][$codice])){
         $_SESSION['carrello'][$codice] ++;
  }
 }else{
     $_SESSION['carrello'][$codice] = 0;
 }
}
nella pagina
$_SESSION['co']=uniqid();
sempre nella stessa
l'immagine del carrello la fai diventare un button di un form
e ci aggiungi <input type="hidden" name="co" value="<?php echo
$_SESSION['co']; ">