Ir para conteúdo
Fórum Script Brasil
  • 0

Sessoes,Carrinho de compra


Andre H.S. Mendes

Pergunta

Olá

fiz um carrinho de compras hj, seguindo um tuto muito legal.

Ele usa sessoes para registrar quem comprou o que. porem, ele não limpa o BD caso o cliente FECHE o navegador, fechando a sessao.

tenho:

<?php
session_start();
include "config.php";
if (isset($_GET['acao']))
{
    if ($_GET['acao'] == "add")
    {
        if(isset($_GET['id']))
        {
            if(is_numeric($_GET['id']))
            {
                $id_prod = addslashes(htmlentities($_GET['id']));
                $sql_cont = "SELECT COUNT(*) AS n_prod FROM carrinho WHERE id_produto='$id_prod' AND sessao='".session_id()."'";
                $exe_cont = mysql_query($sql_cont) or die (mysql_error());
                $reg_cont = mysql_fetch_array($exe_cont, MYSQL_ASSOC);
                if ($reg_cont['n_prod'] == 0)
                {
                    $sql_prod = "SELECT * FROM produtos WHERE id_produto='$id_prod'";
                    $exe_prod = mysql_query($sql_prod) or die(mysql_error());
                    $num_prod = mysql_num_rows($exe_prod);
                    if ($num_prod > 0)
                    {
                        $reg_prod = mysql_fetch_array($exe_prod, MYSQL_ASSOC);
                        $sql_add = "INSERT INTO carrinho (id_produto, nome_produto, preco_produto, qtd_produto, sessao) 
                                    VALUES ('".$reg_prod['id_produto']."', '".$reg_prod['nome_produto']."', '".$reg_prod['preco_produto']."', 1, '".session_id()."')";
                        $exe_add = mysql_query($sql_add) or die(mysql_error());
                    }
                }
                
            }
        }
    }
    if ($_GET['acao'] == "del")
    {
        if (isset($_GET['id']))
        {
            if (is_numeric($_GET['id']))
            {
                $id_prod = addslashes(htmlentities($_GET['id']));
                $sql_del = "DELETE FROM carrinho WHERE id_produto='$id_prod' AND sessao='".session_id()."'";
                $exe_del = mysql_query($sql_del) or die(mysql_error());
            }
        }
    }
    if ($_GET['acao'] == "altera_qtd")
    {
        if (isset($_POST['qtd']))
        {
            if(is_array($_POST['qtd']))
            {
                foreach ($_POST['qtd'] as $id_produto => $qtd)
                {
                    if (is_numeric($id_produto) && is_numeric($qtd))
                    {
                        $sql_alt = "UPDATE carrinho SET qtd_produto='$qtd' WHERE id_produto='$id_produto' AND sessao='".session_id()."'";
                        $exe_alt = mysql_query($sql_alt) or die(mysql_error());
                    }
                }
            }
        }
    }
}
?>

Como eu poderia fazer para limpar o BD caso a pessoa feche o navegador, sem concluir a compra?

abraços

PS: para quem quiser o link do tutorial em video. manda MP

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Com PHP você não consegue isso, pois você não tem como saber quando o usuário fechou o navegador... o que você pode fazer é registrar o último movimento do site no cara em alguma tabela do BD e criar uma regra que após "X" minutos de inatividade limpa o BD, ai programa isso no agendandor de tarefas do servidor..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...