Sessão PHP perdida no meio do processo de compra

A INSTALAÇÃO

Eu tenho um processo de compra que possui os seguintes estágios:

resultadosclienteForma de pagamentoorder-conf

A página de resultados define uma variável de sessão com um ID da nossa tabela de banco de dados de pedidos. Cada página lança dados para a próxima. O início decliente eForma de pagamento AMBOS verifique a existência da variável de sessão do número de ID.

Como você pode imaginar, 99% dos navegadores com configurações padrão de cookies não têm nenhum problema com a configuração dessas vars de sessões e com a leitura delas.

Eu recebo um alerta sempre que a verificação var da sessão volta em branco. A maioria desses erros parece ser hits diretos para o cliente e a página de pagamento, portanto, BOTS ou favoritos de favoritos, tudo isso faz sentido.

Às vezes, recebemos alertas de volta docliente página, com o URL de referência comoresultados dizendo que a sessão estava em branco e parece um cliente com os cookies desativados. Novamente, isso é justo o suficiente e cabe ao usuário aceitar cookies.

O PROBLEMA

Estamos recebendo um punhado de alertas por semana de clientes que têm uma sessão vazia de ID de pedido var, mas noForma de pagamento página (com o URL de referência comocliente) Portanto, eles passam com êxito pelo estágio do cliente com o ID do pedido var existente. Mas quando eu o verifico novamente na página de pagamento depois que eles enviam suas informações pessoais -SE FOI!

Isso não faz sentido para mim. Como pode ser bom na página anterior, mas não na próxima? O domínio permanece o mesmo, todos os URLS estão em HTTPS, portanto não é isso.

Meu email inclui PHP para percorrer todos os SEssion Vars - e isso está sempre em branco. (Portanto, não é apenas a variável de sessão única que está em branco, o lote inteiro está em branco).

Existe mais depuração que posso adicionar a esses alertas por e-mail para ver se a sessão está intacta ou não? Aqui está um código:

cliente e pagamento começam com:

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

$quoteShared        = new quoteShared();

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

    echo $quoteShared->directHit();
    die;

Comum inclui o óbvio no início:

session_start();

Como verificamos as sessões:

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

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

    return $value;
}

questionAnswers(0)

yourAnswerToTheQuestion