За последние 24 часа нас посетили 18893 программиста и 1623 робота. Сейчас ищут 905 программистов ...

Проблема с сессиями

Тема в разделе "Прочие вопросы по PHP", создана пользователем impulsgraw, 15 июн 2011.

  1. impulsgraw

    impulsgraw Активный пользователь

    С нами с:
    15 июн 2011
    Сообщения:
    10
    Симпатии:
    0
    Здравствуйте!
    Пишу скрипт интернет-магазина.
    Допустим, что $_SESSION состоит из
    Array ( [basket] => Array ( [tovarnum] => 1 [199847] => Array ( [coll] => 1 ) [tovars] => 199847 ) ) .
    На страничке корзины, при нажатии на кнопку Пересчитать выполняется следующий скрипт:
    PHP:
    1.  
    2. if(($_GET['step'] == 'mybasket')&&(!empty($_POST)))
    3. {
    4. $ni = explode(',',$_SESSION[basket][tovars]);
    5. $g = $_SESSION[basket][tovarnum];
    6.  
    7. while($g != 0){
    8.     if((int)$_POST[$ni[$g-1]] > '0'){
    9.     $pperror[count($pperror)+1] = 'Ошибка при изменении количества товара #'.$ni[$g-1];
    10.     }elseif((int)$_POST[$ni[$g-1]] == '0'){
    11.     $_SESSION[basket][tovarnum]--;
    12.     unset($_SESSION[basket][$ni[$g-1]]);
    13.    
    14.     $ntemp = explode(',',$_SESSION[basket][tovars]);
    15.     unset($ntemp[$g-1]);
    16.     $_SESSION[basket][tovars] = implode(',',$ntemp);
    17.    
    18.     }else{
    19.     $_SESSION[basket][$ni[$g-1]] = $_POST[$ni[$g-1]];
    20.     }
    21.     $g--;
    22. }
    23. }
    24.  
    Почему после выполения данного скрипта массив $_SESSION преобретает данную конструкцию:
    Array ( [basket] => Array ( [tovarnum] => 0 [tovars] => ) )

    Весь смысл выполнения данного скрипта заключается в пересчёте товаров на страничке.
    (На начальной странице корзины предоставлено меню со всеми товарами в корзине и по текстовому полю для каждого товара. После этого все данные отправляются (post) на страничку обработки с вышенаписанным скриптом.)
    Раньше этот скрипт работал, но сейчас он неконтролируем. В чём проблема не могу понять.
     
  2. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    а где ПОСТ?
     
  3. impulsgraw

    impulsgraw Активный пользователь

    С нами с:
    15 июн 2011
    Сообщения:
    10
    Симпатии:
    0
    Тоесть как, ПОСТ?
     
  4. impulsgraw

    impulsgraw Активный пользователь

    С нами с:
    15 июн 2011
    Сообщения:
    10
    Симпатии:
    0
    Проблему решил.