Только одна из моих многочисленных переменных сеанса на странице корзины моего приложения электронной коммерции как-то уничтожается. Когда я добавляю продукт в корзину вместе с идентификатором сеанса, он создает order_id (используя некоторую хэш-логику и солевую логику) и помещает его в переменную сеанса, и когда я иду на страницу корзины, он запрашивает БД на основе как order_id, так и сеанса id для извлечения продуктов в корзину. Впервые он извлекает записи, но сразу после него, если я перезагружаю страницу, он получает пустой order_id. Я тяну свои волосы на это, как только одна из переменных сеанса становится покрасневшей.
Это происходит только на веб-сервере, но полностью работает на локальном хосте
Моя add_to_cart.php
(логика сеанса)
if(empty($_SESSION['sessid'])){ $_SESSION['sessid'] = session_id(); } $user_sessid = $_SESSION['sessid']; $ip = get_ip_address(); if(empty($_SESSION['order_id'])){ $ip = get_ip_address(); $with_time = strtotime("now"); $addsalt = substr(md5($ip.uniqid($with_time,true)),0,15); $_SESSION['order_id'] = $addsalt; } $order_id = $_SESSION['order_id'];
Моя cart.php
(только для сеансовой логики)
$user_sessid = $_SESSION['sessid']; $order_id = $_SESSION['order_id']; $userid = $_SESSION['user_id']; if(empty($userid)){ $r_type = 1; $q1=<<<SQL select od.ipaddress, od.modified_ts, od.product_id,od.discount,od.quantity,p.id,p.name,p.price, p.img_dir,p.img_name from orders od, products p where od.order_id='$order_id' and od.user_sessid='$user_sessid' and od.product_id = p.id SQL; } else { $r_type = 2; $q1=<<<SQL select uc.modified_ts, uc.product_id,uc.discount,uc.quantity,p.id,p.name,p.price, p.img_dir,p.img_name from user_cart uc, products p where uc.userid='$userid' and uc.product_id = p.id SQL; } $r1=$db->query($q1); $num1 = $r1->num_rows;
Когда я повторяю запрос о немедленной перезагрузке страницы корзины, он получает пустой order_id
.
Мне интересно, как эта странная вещь происходит. Пожалуйста помоги…
Обновление. Я включаю файл поверх обеих страниц, на которых есть session_start
и поэтому он объясняет создание и использование user_sessid.