2015-02-24 113 views
-1

會話存儲陣列似乎只記住一個鍵值對。當我在瀏覽器中按下後退按鈕時,數組似乎是空的。我究竟做錯了什麼? 下面的代碼: 感謝您的幫助

<?php 
 
if(!isset($_SESSION)) { 
 
    session_start(); 
 
     $_SESSION['cart']=array(); 
 
} 
 

 
?> 
 
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
\t <meta charset="UTF-8"> 
 
\t <title>Shoppy</title> 
 
</head> 
 
<body> 
 
<div><a href="index.php">back to store</a></div> 
 

 
\t \t \t <?php include 'products.inc.php'; ?> 
 
\t \t \t <?php $p=$_GET["product"] ?> 
 
\t \t \t <span><?php echo $products[$p]['name']; ?> </span><?php echo $products[$p]['price']; ?> € 
 
\t \t \t <div> 
 
\t \t \t \t <img src="<?php echo $products[$p]['picture']; ?>" alt=""> 
 
\t \t \t </div> 
 
\t \t \t 
 
\t 
 
\t 
 
\t <form action="" method="POST"> 
 
\t \t <input type="hidden" name="form" value=<?php echo $p ?>> 
 
\t \t <button type="submit">buy</button> 
 
\t </form> 
 
\t <?php if (!empty ($_POST) && isset($_POST)) 
 
{ 
 
\t array_push($_SESSION['cart'], $_POST['form']); 
 
\t 
 

 
\t } ?> 
 
\t <?php include 'cart.inc.php'; ?> 
 
</body> 
 
</html>

+0

也許是因爲你清除車在每一頁上的負載?(4號線) – Halcyon 2015-02-24 00:15:47

回答

0

變化

if(!isset($_SESSION)) { 
    session_start(); 
     $_SESSION['cart']=array(); 
} 

session_start(); 
if(!isset($_SESSION['cart'])) { 
     $_SESSION['cart']=array(); 
} 

你需要調用session_start() befor試圖在會話中做任何事情。此外,當您檢查它是否設置,檢查會話變量(即isset($_SESSION['someindex']),不是會議本身(即isset($_SESSION))。

+0

呀,這似乎主要工作,但我的購物車不會更新,除非我推動購買。這是我的購物車: – 2015-02-24 00:33:10

+0

\t

Your shopping cart contains:
\t \t
    \t \t
  • \t \t \t € \t \t \t \t \t \t \t \t
  • \t
\t
Your shopping cart is empty
2015-02-24 00:33:33

+0

@BartMertens它返回一個緩存頁面(即舊數據)的正常返回按鈕。 '。 – developerwjk 2015-02-24 00:36:25