Я пытаюсь хранить товары в корзине из пользовательского ввода в форме с использованием сессий. Это мой код для хранения товаров в корзине.
//Create cart if it doesn't already exist
if (!isset($_SESSION['Cart']))
{
$_SESSION['Cart'] = array();
}
//Add an item only if required movie info needed
if(isset($_POST['Cinema']) && isset($_POST['Day']) && isset($_POST['Time']) && isset($_POST['Quantity']) && isset($_POST['Price']))
{
$ITEM = array(
'Cinema' => $_POST['Cinema'],
'Day' => $_POST['Day'],
'Time' => $_POST['Time'],
'Quantity' => $_POST['Quantity'],
'Price' => $_POST['Price']
);
//Add this item to the cart
$_SESSION['Cart'][] = $ITEM;
}
Тем не менее, я продолжаю получать эту ошибку:
Fatal error: [] operator not supported for strings in Line 31.
Lines 31 is : $_SESSION['Cart'][] = $ITEM;
Мой синтаксис неправильный?
На данный момент, $_SESSION['Cart']
это строка, а не массив — и вы не можете нажать на строку, как если бы вы нажимали на массив.
Вам нужно очистить сессию, используя session_unset()
, затем сбросить $_SESSION['Cart']
быть массивом.
Других решений пока нет …