1 - o vendedor se loga no sistema ( sessão )
2 - entra na interface de produtos ( lista de produtos do banco );
3 - escolhe o produto e clica em comprar;
4 - os dados do produto são passados na url;
5 - na pagina do carrinho recebe os valores da url produto (ID e ação ) e executa os scripts da pagina de acordo com a solicitação ( atualizar, remover ), essas informações são cadastradas no banco;
6 - agora estou precisnado criar uma alternativa para finalizar essa compra, ou seja ao clicar no botão, link...preciso encerrar a compra e limpa a sessão para que possa realizar outras compras com o mesmo vendedor;
7 - até fiz um coisinha aqui ( ação fechar ), mas o sistema está limpando todas as sessões inclusive a de login do vendedor.
Segue abaixo o codigo do carrinho de compras, obrigado
[codebox]<?php
//include"_control_session.php";
// Iniciamos nossa sessão que vai indicar o usuário pela session_id
//session_start();
// Recuperamos os valores passados por parametros
$acao = $_GET['acao'];
$cod = $_GET['cod'];
//$cli = $_GET['cli'];
// Verificamos se a acao é igual a incluir
if ($acao == "incluir")
{
// Verificamos se cod do produto é diferente de vazio
if ($cod != '')
{
// Se for diferente de vazio verificamos se é numérico
if (is_numeric($cod))
{
// Tratamos a variavel de caracteres indevidos
$cod = addslashes(htmlentities($cod));
// Verificamos se o produto referente ao $cod já está no carrinho para o session id correnpondente
$query_rs_carrinho = "SELECT * FROM carrinho WHERE carrinho.IDproduto = '".$cod."' AND carrinho.sessao = '".session_id()."'";
$rs_carrinho = mysql_query($query_rs_carrinho) or die(mysql_error());
$row_rs_carrinho = mysql_fetch_assoc($rs_carrinho);
$totalRows_rs_carrinho = mysql_num_rows($rs_carrinho);
// Se o total for igual a zero é sinal que o produto ainda não está no carrinho
if ($totalRows_rs_carrinho == 0)
{
// Aqui pegamos os dados do produto a ser incluido no carrinho
$query_rs_produto = "select * from produtos where IDproduto = '".$cod."'";
$rs_produto = mysql_query($query_rs_produto) or die(mysql_error());
$row_rs_produto = mysql_fetch_assoc($rs_produto);
$totalRows_rs_produto = mysql_num_rows($rs_produto);
// Se total for maior que zero esse produto existe e então podemos incluir no carrinho
if ($totalRows_rs_produto > 0)
{
$registro_produto = mysql_fetch_assoc($rs_produto);
// Incluimos o produto selecionado no carrinho de compras
$add_sql = "INSERT INTO carrinho (id, IDusuario, IDproduto, nome_produto, IDcategoria, fornecedor, preco_unit, qtd, sessao)
VALUES
('','".$_SESSION['user']."','".$row_rs_produto['IDproduto']."','".$row_rs_produto['nome_produto']."','".$row_rs_produto['IDcategoria']."','".$row_rs_produto['fornecedor']."','".$row_rs_produto['preco_unit']."','1','".session_id()."')";
$rs_produto_add = mysql_query($add_sql) or die(mysql_error());
}
}
}
}
}
// Verificamos se a acao é igual a excluir
if ($acao == "excluir")
{
// Verificamos se cod do produto é diferente de vazio
if ($cod != '')
{
// Se for diferente de vazio verificamos se é numérico
if (is_numeric($cod))
{
// Tratamos a variavel de caracteres indevidos
$cod = addslashes(htmlentities($cod));
// Verificamos se o produto referente ao $cod está no carrinho para o session id correnpondente
$query_rs_car = "SELECT * FROM carrinho WHERE IDproduto = '".$cod."' AND sessao = '".session_id()."'";
$rs_car = mysql_query($query_rs_car) or die(mysql_error());
$row_rs_carrinho = mysql_fetch_assoc($rs_car);
$totalRows_rs_car = mysql_num_rows($rs_car);
// Se encontrarmos o registro, excluimos do carrinho
if ($totalRows_rs_car > 0)
{
$sql_carrinho_excluir = "DELETE FROM carrinho WHERE IDproduto = '".$cod."' AND sessao = '".session_id()."'";
$exec_carrinho_excluir = mysql_query($sql_carrinho_excluir) or die(mysql_error());
}
}
}
}
// Verificamos se a ação é de modificar a quantidade do produto
if ($acao == "modifica")
{
$quant = $_POST['qtd'];
// Se for diferente de vazio verificamos se é numérico
if (is_array($quant))
{
// Aqui percorremos o nosso array
foreach($quant as $cod => $qtd)
{
// Verificamos se os valores são do tipo numeric
if(is_numeric($cod) && is_numeric($qtd))
{
// Fazemos nosso update nas quantidades dos produtos
$sql_modifica = "UPDATE carrinho SET qtd = '$qtd' WHERE IDproduto = '$cod' AND sessao = '".session_id()."'";
$rs_modifica = mysql_query($sql_modifica) or die(mysql_error());
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Carrinho de Compras</title>
</head>
<body>
<form action="?pagina=produtos.carrinho&acao=modifica" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><? include "menu.php";?></td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><img name="layout_r2_c1" src="imagens/layout/layout_r2_c1.jpg" width="6" height="35" border="0" id="layout_r2_c1" alt="" /></td>
<td width="100%" valign="middle" background="imagens/layout/layout_r2_c2.jpg"><table width="98%" border="0" align="center">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
<td><img name="layout_r2_c12" src="imagens/layout/layout_r2_c12.jpg" width="13" height="35" border="0" id="layout_r2_c12" alt="" /></td>
<td><img name="layout_r2_c13" src="imagens/layout/layout_r2_c13.jpg" width="17" height="35" border="0" id="layout_r2_c13" alt="" /></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="4" class="bordasimples">
<tr>
<td width="4%" align="left" bgcolor="#73ACCE" class="titulo">ID
<td width="18%" align="left" bgcolor="#73ACCE" class="titulo">PRODUTO</th>
<td width="18%" align="left" bgcolor="#73ACCE" class="titulo">FORNECEDOR</td>
<td width="17%" align="center" valign="middle" bgcolor="#73ACCE" class="titulo">PREÇO UNITÁRIO</td>
<td width="14%" align="center" valign="middle" bgcolor="#73ACCE" class="titulo">QUANTIDADE</td>
<td width="17%" align="center" valign="middle" bgcolor="#73ACCE" class="titulo">VALOR TOTAL </th> </td>
<td width="12%" align="center" valign="middle" bgcolor="#73ACCE" class="titulo">REMOVER</td>
</tr>
<?
$sql_meu_carrinho = "SELECT * FROM carrinho WHERE sessao = '".session_id()."' ORDER BY nome_produto ASC";
$exec_meu_carrinho = mysql_query($sql_meu_carrinho) or die(mysql_error());
$qtd_meu_carrinho = mysql_num_rows($exec_meu_carrinho);
if ($qtd_meu_carrinho > 0)
{
$soma_carrinho = 0;
while ($row_rs_produto_carrinho = mysql_fetch_assoc($exec_meu_carrinho))
{
$soma_carrinho += ($row_rs_produto_carrinho['preco_unit']*$row_rs_produto_carrinho['qtd']);
$dinheiro = $_POST['dinheiro'];
$troco = $dinheiro-$soma_carrinho;
?>
<tr>
<td bgcolor="#D7E6F7" class="texto"><?=$row_rs_produto_carrinho['IDproduto']?></td>
<td bgcolor="#D7E6F7" class="texto"><?=$row_rs_produto_carrinho['nome_produto']?></td>
<td bgcolor="#D7E6F7" class="texto"><?=$row_rs_produto_carrinho['fornecedor']?></td>
<td align="center" valign="middle" bgcolor="#D7E6F7" class="texto">R$ <?= number_format($row_rs_produto_carrinho['preco_unit'],2,",","."); ?></td>
<td align="center" valign="middle" bgcolor="#D7E6F7" class="texto">
<input type="type""text" size="2" name="qtd[<?=$row_rs_produto_carrinho['IDproduto']?>]" value="<?=$row_rs_produto_carrinho['qtd']?>" /> </td>
<td align="center" valign="middle" bgcolor="#D7E6F7" class="texto">R$ <?= number_format($row_rs_produto_carrinho['preco_unit']*$row_rs_produto_carrinho['qtd'],2,",","."); ?></td>
<td align="center" valign="middle" bgcolor="#D7E6F7"><a href="?pagina=produtos.carrinho&cod=<?=$row_rs_produto_carrinho['IDproduto']?>&acao=excluir"><img src="imagens/icones/button_cancel.png" width="16" height="16" border="0" /></a></td>
</tr>
<?
}
}
?>
<tr>
<td colspan="5" align="right" valign="middle" class="total">TOTAL:</td>
<td class="total">R$ <?= number_format($soma_carrinho,2,",","."); ?></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2" align="right" valign="middle" class="total">DINHEIRO:</td>
<td>R$
<input name="dinheiro" type="text" class="modelo1" id="dinheiro" value="0" size="2" /></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2" align="right" valign="middle"class="total" >TROCO:</td>
<td>
R$ <?= number_format($troco,2,",","."); ?>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2" align="right" valign="middle"><a href="?pagina=produtos.listar"><img src="imagens/icones/seta (2).gif" alt="Continuar Comprando" border="0" /></a></td>
<td><input name="submit" type="submit" class="modelo2" value="Atualizar compra" /></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</form>
<?
echo " <a href='?pagina=produtos.carrinho&acao=fechar'>Comprar</a>";
if ($acao == "fechar"){
session_unset();
session_destroy();
$cod = $_GET['cod'];
$qtd = $_GET['qtd'];
print"<script>alert('Compra realizada com sucesso!')</script>";
print"<script>document.location='?pagina=produtos.listar'</script>";
}
?>[/codebox]
Edição feita por: maykel, 23/03/2009, 16:32.