PHP сессия потеряла половину процесса покупки

НАСТРОЙКА

У меня есть процесс покупки, который состоит из следующих этапов:

  • Результаты
  • покупатель
  • оплата
  • заказ-конф

Страница результатов устанавливает переменную сеанса с идентификатором из нашей таблицы базы данных заказов. Каждая страница отправляет данные на следующую. Начало покупатель а также оплата ОБА проверить наличие переменной сеанса ID номера.

Как вы можете себе представить, 99% браузеров с настройками cookie по умолчанию не имеют проблем с настройкой этих сессий и их чтением.

Я получаю оповещение всякий раз, когда эта проверка сеанса возвращается как пустая. Большинство из этих ошибок, по-видимому, являются прямыми попаданиями на страницу клиента и платежа, поэтому БОТЫ или попадания в закладки имеют смысл.

Иногда мы получаем оповещения от покупатель страница со ссылочным URL как Результаты говорят, что сессия была пустой, и похоже, что клиент отключил куки. Опять же, это достаточно справедливо, и пользователь может принимать куки.

ЭТА ПРОБЛЕМА

Мы получаем несколько предупреждений в неделю от клиентов, у которых есть пустой идентификатор сеанса заказа var, но на оплата страница (со ссылкой на URL как покупатель). Таким образом, они успешно проходят этап клиента с существующим идентификатором заказа. Но когда я проверяю это на странице оплаты после того, как они отправляют свою личную информацию — УШЕЛ!

Это не имеет никакого смысла для меня. Как это может быть хорошо на предыдущей странице, но не на следующей? Домен остается тем же, все URL-адреса находятся на HTTPS, так что это не так.

Моя электронная почта включает в себя PHP для циклического прохождения всех SEssion Vars — и это всегда пусто. (Так что это не просто пустая переменная сеанса, а целые лоты пустые).

Могу ли я добавить еще какие-нибудь отладки к этим оповещениям по электронной почте, чтобы узнать, работает ли сеанс или нет? Вот некоторый код:

Клиент и оплата начинаются с:

<?php
require_once "../includes/common.php";

$quoteShared        = new quoteShared();

// Check if this is a direct page hit
if (requestSession("sessionid") == "") {

echo $quoteShared->directHit();
die;

Общее включает в себя очевидное в начале:

session_start();

Как мы проверяем сессии:

function requestSession($xParam) {
$value = "";

if (isset($_SESSION[$xParam]))
{
if ($_SESSION[$xParam] != "") {
$value = $_SESSION[$xParam];
}
}

return $value;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]