Andre H.S. Mendes Postado Dezembro 19, 2008 Denunciar Share Postado Dezembro 19, 2008 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çosPS: para quem quiser o link do tutorial em video. manda MP Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Dezembro 19, 2008 Denunciar Share Postado Dezembro 19, 2008 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.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Andre H.S. Mendes
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:
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
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.