За последние 24 часа нас посетили 5313 программистов и 446 роботов. Сейчас ищут 97 программистов ...

Корзина в магазине

Тема в разделе "PHP для новичков", создана пользователем _NoobPhP_, 12 фев 2018.

  1. _NoobPhP_

    _NoobPhP_ Новичок

    С нами с:
    12 фев 2018
    Сообщения:
    3
    Симпатии:
    1
    Есть попытка сделать магазин.
    Так вот, почему-то изначально в корзине есть елемент. В0-вторых , добавлавение товара происх одит только из индексного файла, если перейти на страницу товара, то добавления не происходит и корзина не принимает значения.
    Подскажите чем может быть проблема и как ее исправить.
    Ссылка на сайт: http://test.paper-craft.biz.ua
    Обработчик кнопки В корзину:

    Код (Javascript):
    1. $(document).ready(function(){
    2.  
    3.   $('.btn-buy').click(function () {
    4.   //клип на кнопку
    5.   var id = $(this).attr('ident'); //получаем id этой кнопки
    6.   $.ajax({//передаем ajax-запросом данные
    7.   type: "POST", //метод передачи данных
    8.   url: '../include/addtocart.php',//php-файл для обработки данных
    9.   data: {id_tov: id},//передаем наши данные
    10.   success: function(data) {//
    11.   $('.basker_kol').html(data);//меняем количество товаров на кнопке корзины
    12.   }
    13.   });
    14.   });
    15.  
    16. }
    17. )
    addtocard.php

    PHP:
    1. <?php
    2.     $id = $_POST['id_tov'];//получаем id товара
    3.  
    4.         session_start();
    5.         if (!isset($_SESSION['cart'])) {//если сесия корзины не существует
    6.             $temp[$id] = 1;//в масив заносим количество тавара 1
    7.         } else {//если в сесии корзины уже есть товары
    8.             $temp = $_SESSION['cart'];//заносим в масив старую сесию
    9.             if (!array_key_exists($id, $temp)) {//проверяем есть ли в корзине уже такой товар
    10.             $temp[$id] = 1; //в масив заносим количество тавара 1
    11.             }    
    12.         }
    13.         $count = count($temp);//считаем товары в корзине
    14.         $_SESSION['cart'] = $temp;//записывае в сесию наш масив
    15.         echo $count; //возвращаем количество товаров
    16. ?>
     
  2. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.285
    Симпатии:
    285
    А не было мыслей взять готовый магазин?? или просто учитесь? для себя?
     
  3. _NoobPhP_

    _NoobPhP_ Новичок

    С нами с:
    12 фев 2018
    Сообщения:
    3
    Симпатии:
    1
    это в учебных целях
     
    Алекс8 нравится это.
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    1.071
    Симпатии:
    230
    Адрес:
    Татарстан
    1. Раз показывает какое то значение начальное - значит где-то есть код который запрашивает текущее кол-во, так - где он?
    2. То что только в одном файле работает - скорее всего другие части магазина - в других php файлах, которые не стартую сессию - нет в начале session_start() и соответственно не видят сессию
    3. ну и что-то мне подсказывает что вот этот кусок
    PHP:
    1. if (!isset($_SESSION['cart'])) {//если сесия корзины не существует
    2.             $temp[$id] = 1;//в масив заносим количество тавара 1
    отрабатывает в этом файле всегда - даже когда и товар туда не передаем
    по идее там должен идти запрос к БД по ид, для проверки - есть ли такой товар у вас вообще (в перспективе - еще и остатки проверять)
    и только если есть - добавлять в корзину
    вы же добавляете в корзину - в любом случае, был ли передан товар или нет - возможно отсюда у вас проблема по п 1.
     
  5. _NoobPhP_

    _NoobPhP_ Новичок

    С нами с:
    12 фев 2018
    Сообщения:
    3
    Симпатии:
    1
    спасибо, помогл0. Напутал с сессией