2012-02-15 69 views
0

輸入一些變量之後,添加變量數組到Cookie,則得到錯誤

PHP代碼:

$CartItem = array(
     'itemID' => $itemID, 
     'ProductName' => $ProductName, 
     'Option' => $Option, 
     'Quantity' => $Quantity, 
     'Price' => $Price, 
     'Total' => $Total 
    ); 

setcookie('CartItem', $CartItem, null); 

輸出錯誤:

Warning: setcookie() expects parameter 2 to be string, array given in /Users/user/Sites/app/addtocart.php on line 46 
+1

你真的不應該爲此使用cookies。而應將購物車存放在'$ _SESSION'中,如果需要長期存儲,請將其序列化爲數據庫。有關示例,請參閱http://stackoverflow.com/questions/8128433/removing-values-from-php-session/8128472#8128472。 – 2012-02-15 14:23:54

回答

0

正如錯誤所示,cookie數據必須是字符串格式。更重要的是,您不應該將真實數據存儲在cookie中,因爲用戶可以編輯它們。

由於您使用的是PHP,因此您可以利用會話......您可以使用session_start()這將設置您不需要管理的cookie,然後您可以在$_SESSION可變服務器端設置數據。

在這裏看到:http://php.net/manual/en/function.session-start.php

注意,在session_start()之前必須什麼是每一頁上輸出調用。

0

我們可以在cokkie一次添加一個變量 所以這樣做

$CartItem[] = array(
     'itemID' => $itemID, 
     'ProductName' => $ProductName, 
     'Option' => $Option, 
     'Quantity' => $Quantity, 
     'Price' => $Price, 
     'Total' => $Total 
    ); 

foreach($CartItem as $key=>$value) 
{ 
setcookie($key, $value, null); 

} 
+0

啊... Cookie不能支持變量數組?? – user453089 2012-02-15 14:23:58

+1

雖然它可能解決最初的問題(或者不是真的,因爲它只允許存儲一個CartItem),但更大的問題是使用cookie來存儲用戶可編輯的實際數據(如價格和總量)。 – Fosco 2012-02-15 14:26:56

+0

我明白..我想我會去... – user453089 2012-02-15 14:43:03