Мне нужна помощь с логикой для процесса покупки на моем сайте.
У нас есть 4 этапа покупки: результаты, данные клиента, информация об оплате, подтверждение заказа.
Страница результатов просто выводит цены на экран на основе некоторых параметров строки запроса.
Затем я сохраняю много информации в переменных PHP Sessions для дальнейшего использования.
На втором этапе, на этапе заказчика, я хочу вывести некоторые из этих переменных сеанса на экран, который по большей части работает.
В моем коде первое, что я делаю, это проверяю наличие одной из переменных сеанса, которые я установил на странице результатов, просто чтобы убедиться, что мы находимся в бизнесе и информация о ценах клиентов сохраняется правильно.
Я настроил для себя электронные письма с предупреждениями, чтобы уведомлять меня, когда пользователь попадает либо на клиента, либо на стадию оплаты в процессе бронирования, но, очевидно, первой переменной сеанса не существует. Затем я отображаю дружественное сообщение об ошибке, спрашивающее, включили ли они куки в своем браузере.
Похоже, мы получаем очень много этих электронных писем с предупреждениями. Это не похоже на точную статистику того, сколько клиентов может прийти без включенных файлов cookie.
Электронное письмо предупреждает меня о текущем URL-адресе, ссылочном URL-адресе, если он был указан, IP-адресе пользователя и выводе всех сохраненных им сессионных переменных (всегда, конечно, ни одного!)
Я просто озадачен, что делать дальше — действительно ли эти пользователи или боты заходят на страницу результатов без включенных файлов cookie, что означает, что они не пройдут тест на следующей странице или это может быть что-то еще?
У меня есть session_start () в верхней части каждой из этих страниц покупки, так что ничего подобного.
Вот моя страница клиента:
<?php
require_once "../includes/common.php";
$quoteShared = new quoteShared();
// Check if this is a direct page hit
if (requestSession("sessionnumber") == "") {
echo $quoteShared->directHit();
die;
common.php имеет session_start () в верхней части.
function requestSession($xParam) {
$value = "";
if (isset($_SESSION[$xParam]))
{
if ($_SESSION[$xParam] != "") {
$value = $_SESSION[$xParam];
}
}
return $value;
}
Вы также можете сделать это в javascript следующим образом:
function cookiesAreEnabled()
{
var cookieEnabled = (navigator.cookieEnabled) ? 1 : 0;
if (typeof navigator.cookieEnabled == "undefined" && cookieEnabled == 0){
document.cookie="testcookie";
cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? 1 : 0;
}
return cookieEnabled == 1;
}
Лучший способ PHP
<?php
session_start();
if(!isset($_GET['testing'])){
setcookie('cookietest', 'somevalue', time()+3600);
header("location: cookie.php?testing=1");
}else{
if(isset($_COOKIE['cookietest']) && $_COOKIE['cookietest'] == 'somevalue'){
echo 'cookie enabled';
}else{
echo 'cookie not enabled';
}
}
Других решений пока нет …