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

(resolvido) Remover registro depois que usuario fecha browser


GALLO

Pergunta

Oi pessoal. Estou com um problema.. estoui desenvolvendo uma loja virtual, tenho um carrinho de compras e gostaria que, se o usuario fechar o browser, remova os dados do meu carrinho. Tenho uma tabela no banco que uso para o carrinho com dados como nome do produto, referencia, peso, etc.. quando o usuario finaliza a venda esses dados vao para a tabela de vendas com o pedido dele e automaticamente a tabela carrinho é limpa.. o problema é que quando a pessoa insere os produtos no carrinho, o estoque dos produtos vai baixando e se a pessoa fecha o browser o estoque do produto fica alterado sem ele ter finalizado a compra.. andei vendo algumas coisas e não quero usar "onunload" pois quero q de um DELETE no banco somente quando o usuario feche o browser ou vai para outro site.. obs: to usando sessao.

Abraços

UPDATE Resolvido

Obrigado fiote, tratei os estoques quando a pessoa finaliza a veenda e não no carrinho, ai da certo.. falow!

Editado por GALLO
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Não sei se entendi, mas as sessions são fechadas após o fechamento do navegador ou passado o tempo definido (se não me engano, o padrão é de 20min)

faça um function para deletar

e use no evento onunload

onunloada="<?php remove_dados();?>"l

O problema de usar onunload é que ele executa quando a página é atualizada.. eu quero que execute somente quando o usuario fehcar o browser.. até vi uma gambiarra q pega a posição do mouse na tela.. masnão funciona quando o usuario aperta alt+f4.. acho q o esquema é fazer tipo um ping no servidor de tempo em tempo.. pra saber se o usuario ta ainda na sessao.. mas não to conseguindo fazer..

Link para o comentário
Compartilhar em outros sites

  • 0

Supondo que o usuário tenha que estar logado, e supondo que uma session dude 20minutos:

Crie um campo na tabela de usuários, algo como Dt_Ultimo_Acesso, que é atualizado toda vez que um usuário carregar qualquer página do site.

Além disso, adicione uma query que limpe o carrinho dos usuários aonde o ultimo acesso foi maior do que vinte minutos.

Prontinho ^^

P: mas poxa, e se ele saiu pra ir ao banheiro? ele não vai carregar nenhuma página nesse meio tempo... quando ele voltar vai ter o carrinho estar vazio???

Bem, se ele demorar mais de 20 minutos, a session dele espiraria de qualquer jeito, e seria como se ele tivesse fechado a página.

o problema é que quando a pessoa insere os produtos no carrinho, o estoque dos produtos vai baixando

Desculpa dizer... mas essa lógica tá meio zuada lol.

Link para o comentário
Compartilhar em outros sites

  • 0
Supondo que o usuário tenha que estar logado, e supondo que uma session dude 20minutos:

Crie um campo na tabela de usuários, algo como Dt_Ultimo_Acesso, que é atualizado toda vez que um usuário carregar qualquer página do site.

Além disso, adicione uma query que limpe o carrinho dos usuários aonde o ultimo acesso foi maior do que vinte minutos.

Prontinho ^^

P: mas poxa, e se ele saiu pra ir ao banheiro? ele não vai carregar nenhuma página nesse meio tempo... quando ele voltar vai ter o carrinho estar vazio???

Bem, se ele demorar mais de 20 minutos, a session dele espiraria de qualquer jeito, e seria como se ele tivesse fechado a página.

o problema é que quando a pessoa insere os produtos no carrinho, o estoque dos produtos vai baixando

Desculpa dizer... mas essa lógica tá meio zuada lol.

Então qual seria a lógica certa? O estoque dos produtos esta na tabela de produtos.. q é carregada na pagina carrinho.php.. então se a pessoa fechar o browser o estoque vai ficar atualizado com a venda dele mas a venda em si não se concretizou entende?

Link para o comentário
Compartilhar em outros sites

  • 0

O estoque dos produtos só deve baixar quando a pessoa confirmar a compra.

Tipo, se eu entrar no teu site e colocar todos (todos TODOS) os produtos no meu carrinho... a próxima pessoa que entrar vai ver tudo como "não tem estoque"?

=(

Tipo, o que eu falei resolve o seu problema. Só acho que essa história de "colocou no carrinho = abaixou o estoque" não muito legal.

Editado por fiote
Link para o comentário
Compartilhar em outros sites

  • 0

Acho melhor você tratar direto pela inserçaõ no banco de dados...

Coloca pra fazer uma consulta em toda transição de tela, se em um desses casos o estoque ficar abaixo do que ele pediu você da uma aviso a ele, da mesma forma quando for concluir a compra, antes de concluir você consulta e avisa se for nescessario.

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...