Опять Сессии

Главные вкладки

Аватар пользователя darkozoid darkozoid 2 октября 2014 в 12:46

Господа, подскажите куда рыть?

Есть модуль корзины, работает на сессиях, точнее должен работать, но не работает

при добавлении товара - создается сессия и в нее добавляются данные, но на этом все... если попытаться добавить что то еще, то ни чего не происходит, равно как и если попытаться удалить товар из корзины...

Причем в присылаемых данных я присылаю переменную log, в которой содержатся данные сессии - там все нормально, но если обновляю страницу, то в массиве $_SESSION опять старые данные...

На сколько я знаю, данные сессии хранятся в базе, такое ощущение, что данные просто не обновляются в базе при обновлении данных переменной...

Запрос на добавление:

$.ajax({
                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 - это норма?