Un cordiale saluto a tutti.
Sono nuovo in questo forum, ma dico la verità ho sempre preso spunto da molte di queste discussioni relative alla programmazione php + mysql, sempre molto interessanti e dettagliate.
Sto realizzando un ecommerce e mi sono imbattuto in un problema che proprio non riesco a superare.
Tale problema riguarda la gestione delle sessioni per il carrello.
Premesso che:
in locale utilizzo Windows 7 + EasyPHP 5.3.3
e in remoto (hosting Aruba) utilizzo la piattaforma LINUX
Lo script per le sessioni che ho generato in locale funziona bene, non da nessun problema, invece in remoto appena aggiorno pagina mi sballa un pò tutto.
Posto il codice di riferimento:
pagina carrello.php (pagina che includo nell'header di tutte le pagine)
<?php
//session_start(); è inserito in testa file config.php ad inizio codice, tale pagina è richiamata tramite include.
require_once ('admin/_db.php');
$cart_numprodotti = 0;
$cart_price = 0;
if (isset($_SESSION['carrello'])){
$carrello = explode("|",$_SESSION['carrello']);
for ($i=1;$i<count($carrello);$i++){
$cart_prodotto = explode("#",$carrello*);
$cart_numprodotti = $cart_numprodotti + $cart_prodotto[1];
$query = "SELECT * FROM prodotti WHERE p_codice='$cart_prodotto[0]'";
$ris = mysql_query($query) or die("Errore nella query: " . mysql_error());
while($array = mysql_fetch_array($ris)){
$prodotto_prezzo=strval("$array[p_prezzo]");
$prodotto_sconto=("$array[p_sconto]");
}
if ($prodotto_sconto > 0)
$temp = number_format($prodotto_prezzo - ($prodotto_prezzo*($prodotto_sconto/100)),2) * $cart_prodotto[1];
else $temp = $prodotto_prezzo * $cart_prodotto[1];
$cart_price = $cart_price + $temp;
}
}
?>
pagina _addcart.php
<?php
session_start();
$add = "|".$_POST['codice']."#".$_POST['quant'];
if (isset($_SESSION['carrello'])){
$old = implode('|',$_SESSION['carrello']);
$_SESSION['carrello'] = $old.$add;
}
else
$_SESSION['carrello'] = $add;
//var_dump($_SESSION['carrello']);
header('location:../dettaglio.php?codice='.$_POST['codice']);
?>
in pratica aggiungo ad una variabile di sessione (carrello) una stringa composta da "|"codiceprodotto"#"quantitàprodotto
Il problema nasce in REMOTO appena aggiorno qualsiasi pagina il contatore di numeroprodotti e prezzototale viene resettato a 0.
La cosa che proprio non capisco, è perchè in locale va tutto liscio e in remoto no.
Spero che qualcuno mi possa aiutare
Grazie in anticipo
ps: scusate ho sbagliato sezione, non me ne sono accorto