Господа, подскажите куда рыть?
Есть модуль корзины, работает на сессиях, точнее должен работать, но не работает
при добавлении товара - создается сессия и в нее добавляются данные, но на этом все... если попытаться добавить что то еще, то ни чего не происходит, равно как и если попытаться удалить товар из корзины...
Причем в присылаемых данных я присылаю переменную log, в которой содержатся данные сессии - там все нормально, но если обновляю страницу, то в массиве $_SESSION опять старые данные...
На сколько я знаю, данные сессии хранятся в базе, такое ощущение, что данные просто не обновляются в базе при обновлении данных переменной...
Запрос на добавление:
url:'/order/addBasket',
dataType:'json',
data:{
data:JSON.stringify(order)
},
type:'POST',
success:function(data){
if(data.status == 'ok')
alert('Товары добавлены в корзину')
console.log(data.log);
}
})
Кусок модуля:
<?php
function addBasket() {
$data = json_decode($_POST['data']);
if (!isset($_SESSION['basket'])){ $_SESSION['basket'] = json_encode(array()); }
$currentBasket = json_decode($_SESSION['basket'], true);
$toBasket = array();
foreach ($data as $item) {
if (isset($currentBasket[$item->nid])) {
unset($currentBasket[$item->nid]);
$toBasket[$item->nid] = array(
'title' => $item->title,
'price' => $item->price,
'nid' => $item->nid,
'count' => $currentBasket[$item->nid]['count'] + $item->count
);
} else {
$toBasket[$item->nid] = array(
'title' => $item->title,
'price' => $item->price,
'nid' => $item->nid,
'count' => $item->count
);
}
}
$toBasket = array_merge($toBasket,$currentBasket);
$goods = array();
foreach ($toBasket as $item){
$good = node_load($item['nid']);
$good->count = $item['count'];
$good->price = $item['price'];
$goods[$item['nid']] = $good;
}
$log = $_SESSION['basket'] = json_encode($goods);
drupal_json(array('status' => 'ok', 'log' => $log));
}
?>
после выполнения запроса в консоле вижу верный массив (с новыми товарами), если обновить страницу, то опять только один товар
в базе есть uid == 0
и еще в базе несколько записей для uid 0 в таблице session - это норма?