НАСТРОЙКА
У меня есть процесс покупки, который состоит из следующих этапов:
Страница результатов устанавливает переменную сеанса с идентификатором из нашей таблицы базы данных заказов. Каждая страница отправляет данные на следующую. Начало покупатель а также оплата ОБА проверить наличие переменной сеанса 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;
}
Задача ещё не решена.
Других решений пока нет …