За последние 24 часа нас посетили 51487 программистов и 1756 роботов. Сейчас ищут 1376 программистов ...

заменить хранение в SESSION на COOKIE

Тема в разделе "Сделайте за меня", создана пользователем thctps, 11 окт 2016.

  1. thctps

    thctps Новичок

    С нами с:
    11 окт 2016
    Сообщения:
    15
    Симпатии:
    0
    нехватало кавычек
    новый код:

    PHP:
    1. class plgJshoppingproductsJshopping_last_visit_product extends JPlugin {
    2.  
    3.     function onBeforeDisplayProductView($view) {
    4.         $session = JFactory::getSession();
    5.         $last_visited_products = $session->get('last_visited_products', array());
    6.         if (isset($last_visited_products[$view->product->product_id])) {
    7.             unset($last_visited_products[$view->product->product_id]);
    8.         }
    9.         $product = new stdClass();
    10.         $product->name = $view->product->name;
    11.         $product->product_thumb_image = $view->product->product_thumb_image;
    12.         $product->product_id = $view->product->product_id;
    13.         $product->currency_id = $view->product->currency_id;
    14.         $product->product_price = $view->product->product_price;
    15.         $product->product_manufacturer_id = $view->product->product_manufacturer_id;
    16.         $product->label_id = $view->product->label_id;
    17.         $product->category_id = $view->category_id;
    18.         $last_visited_products[$product->product_id] = $product;
    19.         $session->set('last_visited_products', $last_visited_products);
    20.  
    21.         $patch = "/";
    22.         if (JURI::base(true) != ""){
    23.             $patch = JURI::base(true);
    24.         }
    25.         setcookie('last_visited_products', session_id(), time() + 3600*24*30, $patch);
    26.  
    27.         $inputCookie  = JFactory::getApplication()->input->cookie;
    28.         $cookie_id = $inputCookie->get('last_visited_products', null);
    29.         $cookieExists = ($cookie_id === null);
    30.  
    31.         $db = JFactory::getDbo();
    32.  
    33.         $query = "INSERT INTO `oewi4_jmb_jshopping_last_seen_products` (`product_id`, `time`, `data`)"
    34.             . " VALUES ('" . $db->escape($cookie_id) . "', NOW(), " . $db->quote(json_encode($last_visited_products)) . ")"
    35.             . " ON DUPLICATE KEY UPDATE `time` = VALUES(`time`), `data` = VALUES(`data`)";
    36.  
    37.         $db->setQuery($query);
    38.         $db->execute();
    39.     }
    40.  
    41. }

    как теперь это выводить используя как ключ кукисы?