Как лучше всего определить, могут ли мои пользователи принимать файлы cookie / сеансы

Мне нужна помощь с логикой для процесса покупки на моем сайте.

У нас есть 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;
}

0

Решение

Вы также можете сделать это в javascript следующим образом:

function cookiesAreEnabled()
{
var cookieEnabled = (navigator.cookieEnabled) ? 1 : 0;

if (typeof navigator.cookieEnabled == "undefined" && cookieEnabled == 0){
document.cookie="testcookie";
cookieEnabled = (document.cookie.indexOf("test­cookie") != -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';
}

}
0

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

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

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