rickytuga 0 Denunciar post Postado Julho 17, 2009 sim penso que é a melhor forma como vtu disseste... antes de mais inseri ja na tabela 3 produtos para que possa testar melhor o carrinho: -- ---------------------------------------------------------- -- Inserimos na tabela produtos alguns produtos para testar o carrinho -- ---------------------------------------------------------- Insert Into produtos ( id_produtos, referencia, data, categoria, produto, stock, descricao, detalhes, preco, disponibilidade, imagens) Values ( NULL, '3215', '22-04-2009', 'texteis', 'calças de ganga', '32', 'calças de ganga de cor azul com bolços traseiros de cor cinza', 'calças de ganga de cor azul com bolços traseiros de cor cinza claro e com bainhas reforçadas a linha de algodão puro.', '74', 'sim', '01.jpg' ),( NULL, '6425', '27-04-2009', 'texteis', 'calções de ganga', '32', 'calções de ganga de cor verde com bolços traseiros de cor cinza', 'calções de ganga de cor verde com bolços traseiros de cor cinza claro e com bainhas reforçadas a linha de algodão puro.', '42', 'sim', '02.jpg' ),( NULL, '3215', '22-04-2009', 'texteis', 'calças de ganga', '32', 'calças de bombazin de cor preto com bolços traseiros de cor cinza', 'calças de bombazin de cor preto com bolços traseiros de cor cinza claro e com bainhas reforçadas a linha de algodão puro.', '62', 'sim', '03.jpg' ); esqueci de avisar que criei no servidor 2 pastas "Imagens" e "Produtos" onde guardo as imagens do interface (botoes etc) e os produtos. Ate aqui o index.php esta a funcionar igualzinho a como funcionava antes ;)/> Recapitulando o index.html está assim: <? session_start(); include('conexao.php'); ?> <html> <body> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="content-language" content="en"> <style type="text/css"> <!-- .pag { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; background-color: #f3f3f3; width: 800px; text-decoration: none; } --> </style> </head> <body> <? ################################################################################### // PAGINAÇÃO if($_SERVER['REQUEST_METHOD']=='GET'){ $pg = isset($_GET['pg']) ? (int)(htmlentities($_GET['pg'])) : 1; ($pg <= 0) ? $pg = 1 : NULL; $inicio = ($pg * 9) - 9; $select = mysql_query("SELECT * FROM produtos ORDER BY id_produtos LIMIT 9")or die(mysql_error()); ################################################################################### // INICIO DO CONTEÚDO echo " <center> <img src='Imagens/BannerLoja.png' border='0'><br> <table cellpadding='5' cellspacing='1' width='800'> <tr> <td align='center'> "; $sql = mysql_query("SELECT * FROM produtos ORDER BY id_produtos LIMIT $inicio,12") or die(mysql_error()); // Exibimos os nomes dos produtos e seus repectivos valores while ($ver = mysql_fetch_assoc($sql)) { echo '<div style="border: 0px width: 800px; float: center;">'; // Mostra a imagem e nome do produto. echo ' <div width="200" style="border: 1px solid white; width: 195px; float: left;"> <br> <a href="detalhes.php?id='.$ver['id'].'"><img width=120 height=90 border=0 src="Produtos/'.$ver['imagens'].'"></a> <br> <b>'.$ver['nome'].'</b> <br> '; // Mostra o preço. echo '€ '.number_format($ver['preco'], 2, ',', '').'<br>'; // Mostra o link pra adicionar ao carrinho. echo '<a href="carrinho.php?produto='.$ver['id'].'"><img src="Imagens/BotAdicionar.png" border="0"></a><br><br></div>'; } echo " </td> </tr> </table> "; // FIM DO CONTEUDO ################################################################################### } mysql_free_result($select); $conta_reg = mysql_query("SELECT COUNT(*) AS id_produtos FROM produtos LIMIT 12") or die(mysql_error()); $total_reg = mysql_result($conta_reg,0,id_produtos); $paginas = ceil($total_reg/9); mysql_free_result($conta_reg); ?> <table cellpadding='5' cellspacing='1' width='800'> <tr> <td class="pag" align='left'> <a href="?pg=1">Primeira Página</a> </td> <td class="pag" align='center'> <? for($i = $pg-LINKS; $i <= $pg-1; $i++){ ($i <= 0) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>'; } print '<a href="#">'.$pg.'</a>'; for($i = $pg+1; $i <= $pg+9; $i++){ ($i > $paginas) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>'; } ################################################################################### // FIM DA PAGINAÇÃO ?> </td> <td class="pag" align='right'><a href="?pg=<? print $paginas; ?>">Última Página</a></td> </tr> </table> </body> </html> <hr size=1 color=green width=800> <a href='verProdutos.php'><img src='Imagens/BotCarrinho.png' border='0'></a> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 criamos o verProdutos.php: <? ob_start(); session_start(); include('conexao.php'); // Obtendo a id da sessão $sessao = session_id(); ?> <html> <body> <form action='actualiza.php' method='post'> <? // Requisita à base de dados a id, quantidade e nome do produto. // Como o nome está numa tabela diferente dos outros itens, incluo o nome da tabela junto ao nome do campo. $itens = mysql_query('SELECT carrinho.produtosnocarrinho, carrinho.quantidade, produtos.produto, produtos.imagens, produtos.preco FROM carrinho,produtos WHERE carrinho.produtosnocarrinho = produtos.id_produtos AND carrinho.sessao = "'.$sessao.'"'); // Uma verificação simples se o carrinho está vazio ou não if(mysql_num_rows($itens) < 1){ // Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja echo "<center><br><font size='5' color='red'><b>O carrinho está vazio...</b></font><br><br><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a>"; header( 'refresh:3; url=index.php' ); } else { // Exibe os itens presentes no carrinho ?> <center> <img src='BannerCarrinho.png' border='0'><br> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800'> <tr valign="middle"> <td bgcolor="#e3e3e3" width="40" align="left" valign="middle"> <font color='#99cc33' size='2'><b></b> </td> <td bgcolor="#e3e3e3" width="600" align="left" valign="middle"> <font color='#99cc33' size='2'><b>Lista de Produtos:</b> </td> <td bgcolor="#eeeeee" width="100"> <center> <font color='#99cc33' size='2'><b>Preço Uni.</b> </td> <td bgcolor="#e3e3e3" width="50"> <center> <font color='#99cc33' size='2'><b>Quant.</b> </td> <td bgcolor="#eeeeee" width="50"> <center> <font color='#99cc33' size='2'><b>Opções</b> </td> </tr> <? // Calcular o preço total $total = 0; // Dou um loop pra listar is itens do carrinho de compras while($item = mysql_fetch_assoc($itens)){ ?> <tr valign="middle"> <td bgcolor="#e3e3e3" width="40" align="left" valign="middle"> <center><b><a href="detalhes.php?id=<? echo $item['produtosnocarrinho'] ?>"><? echo '<img width=40 height=30 border=0 src="Produtos/'.$item['img'].'">' ?></a></b> </td> <td bgcolor="#e3e3e3" width="600" align="left" valign="middle"> <b><a href="detalhes.php?id=<? echo $item['cod'] ?>"><? echo $item['nome'] ?></a></b> </td> <td bgcolor="#eeeeee" width="100"> <center> <b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?> </td> <td bgcolor="#e3e3e3" width="50"> <center> <input size='4' type='text' name='quantidade[<? echo $item["cod"] ?>]' value='<? echo $item["quant"] ?>'> </td> <td bgcolor="#eeeeee" width="50"> <center> <a href='remover.php?id=<? echo $item["cod"] ?>'><img src='Imagens/BotRemover.png' border='0'></a> </td> </tr> <? $total += $item['preco'] * $item['quant']; } ?> </table> <center> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800' border='0'> <tr> <td bgcolor='#99cc33' width='560'> <font color='#ffffff' size='4'> <b>Total: €<font color='yellow'> <? echo number_format($total, 2, ',', ''); ?></b></font> - Iva incluído à taxa em vigor.</font> </td><td><font color='#666666' size='2'> Preço s/portes de envio. <a href='portes.php'>Ver Preço Portes</a></font> </td> </tr> </table> <center> <hr size=1 width="800" color="green"> <INPUT TYPE="image" SRC="Imagens/BotActualizar.png" BORDER="0"> <a href=''><img src='Imagens/BotLimpar.png' border='0'></a> <a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a> <a href='finalizar.php'><img src='Imagens/BotFinalizar.png' border='0'></a> </form> <? } ob_flush(); ?> </body> </html> ate aqui tudo parece estar a funcionar bem. agora criei o carrinho.php e é aqui que começa os problemas... ele da sinal que adicionou o produto ao carrinho mas depois mostra a mensagem q o carrinho esta vaziu em vez de mostrar o produto no carrinho carrinho.php: <? ob_start(); session_start(); include "conexao.php"; $sessao = session_id(); $prod = intval($_GET["produto"]); // Aqui verifico se existe algum carrinho pra essa sessão $selc = mysql_query("SELECT * FROM carrinho WHERE sessao='$sessao' AND produtosnocarrinho='$produtosnocarrinho'") or die(mysql_error()); $numrows = mysql_num_rows($selc); $arr = mysql_fetch_array($selc); if($numrows > 0) { // Se retornar carrinhos para esta sessão, a var $quantidade assume o valor do campo quantidade $quantidade = $arr["quantidade"]; } else { // Caso contrário, assume valor 0 $quantidade = "0"; } if($qtde >= 1) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento quantidade em +1 $nova_quantidade = $quantidade + 1; $sql = "UPDATE carrinho SET quantidade='$nova_quantidade' WHERE sessao='$sessao' AND produtosnocarrinho='$produtosnocarrinho'"; } else { // Se não existir, registro com quantidade = 1 $sql = "INSERT INTO carrinho (id_carrinho, produtosnocarrinho, quantidade, sessao) VALUES('', '$produtosnocarrinho', '1', '$sessao')"; } $query = mysql_query($sql); if($query) { echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>"; header( 'refresh:3; url=verProdutos.php' ); echo "<center><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='Imagens/BotCarrinho.png' border='0'></a>"; } else { echo "O produto não pôde ser adicionado ao carrinho!"; echo "<center><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a>"; } ob_flush(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 corrigi algumas variaveis on verProdutos.php mas continua a n mostrar os produtos no carrinho <? ob_start(); session_start(); include('conexao.php'); // Obtendo a id da sessão $sessao = session_id(); ?> <html> <body> <form action='actualiza.php' method='post'> <? // Requisita à base de dados a id, quantidade e nome do produto. // Como o nome está numa tabela diferente dos outros itens, incluo o nome da tabela junto ao nome do campo. $itens = mysql_query('SELECT carrinho.produtosnocarrinho, carrinho.quantidade, produtos.produto, produtos.imagens, produtos.preco FROM carrinho,produtos WHERE carrinho.produtosnocarrinho = produtos.id_produtos AND carrinho.sessao = "'.$sessao.'"'); // Uma verificação simples se o carrinho está vazio ou não if(mysql_num_rows($itens) < 1){ // Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja echo "<center><br><font size='5' color='red'><b>O carrinho está vazio...</b></font><br><br><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a>"; header( 'refresh:3; url=index.php' ); } else { // Exibe os itens presentes no carrinho ?> <center> <img src='BannerCarrinho.png' border='0'><br> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800'> <tr valign="middle"> <td bgcolor="#e3e3e3" width="40" align="left" valign="middle"> <font color='#99cc33' size='2'><b></b> </td> <td bgcolor="#e3e3e3" width="600" align="left" valign="middle"> <font color='#99cc33' size='2'><b>Lista de Produtos:</b> </td> <td bgcolor="#eeeeee" width="100"> <center> <font color='#99cc33' size='2'><b>Preço Uni.</b> </td> <td bgcolor="#e3e3e3" width="50"> <center> <font color='#99cc33' size='2'><b>Quant.</b> </td> <td bgcolor="#eeeeee" width="50"> <center> <font color='#99cc33' size='2'><b>Opções</b> </td> </tr> <? // Calcular o preço total $total = 0; // Dou um loop pra listar is itens do carrinho de compras while($item = mysql_fetch_assoc($itens)){ ?> <tr valign="middle"> <td bgcolor="#e3e3e3" width="40" align="left" valign="middle"> <center><b><a href="detalhes.php?id=<? echo $item['produtosnocarrinho'] ?>"><? echo '<img width=40 height=30 border=0 src="Produtos/'.$item['img'].'">' ?></a></b> </td> <td bgcolor="#e3e3e3" width="600" align="left" valign="middle"> <b><a href="detalhes.php?id=<? echo $item['produtosnocarrinho'] ?>"><? echo $item['produto'] ?></a></b> </td> <td bgcolor="#eeeeee" width="100"> <center> <b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?> </td> <td bgcolor="#e3e3e3" width="50"> <center> <input size='4' type='text' name='quantidade[<? echo $item["produtosnocarrinho"] ?>]' value='<? echo $item["quantidade"] ?>'> </td> <td bgcolor="#eeeeee" width="50"> <center> <a href='remover.php?id=<? echo $item["produtosnocarrinho"] ?>'><img src='Imagens/BotRemover.png' border='0'></a> </td> </tr> <? $total += $item['preco'] * $item['quantidade']; } ?> </table> <center> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800' border='0'> <tr> <td bgcolor='#99cc33' width='560'> <font color='#ffffff' size='4'> <b>Total: €<font color='yellow'> <? echo number_format($total, 2, ',', ''); ?></b></font> - Iva incluído à taxa em vigor.</font> </td><td><font color='#666666' size='2'> Preço s/portes de envio. <a href='portes.php'>Ver Preço Portes</a></font> </td> </tr> </table> <center> <hr size=1 width="800" color="green"> <INPUT TYPE="image" SRC="Imagens/BotActualizar.png" BORDER="0"> <a href=''><img src='Imagens/BotLimpar.png' border='0'></a> <a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a> <a href='finalizar.php'><img src='Imagens/BotFinalizar.png' border='0'></a> </form> <? } ob_flush(); ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
henry franklin 0 Denunciar post Postado Julho 17, 2009 soh me diga: o "carrinho" estará aonde? na sessão ou no banco de dados? Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 o carrinho na sessao é melhor... em relacao ao resto do codigo ja revi e descobri os problemas... é o seguinte, aqui vao os codigos todos a funcionar ate agora: index.php <? session_start(); include('conexao.php'); ?> <html> <body> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="content-language" content="en"> <style type="text/css"> <!-- .pag { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; background-color: #f3f3f3; width: 800px; text-decoration: none; } --> </style> </head> <body> <? ################################################################################### // PAGINAÇÃO if($_SERVER['REQUEST_METHOD']=='GET'){ $pg = isset($_GET['pg']) ? (int)(htmlentities($_GET['pg'])) : 1; ($pg <= 0) ? $pg = 1 : NULL; $inicio = ($pg * 9) - 9; $select = mysql_query("SELECT * FROM produtos ORDER BY id_produtos LIMIT 9")or die(mysql_error()); ################################################################################### // INICIO DO CONTEÚDO echo " <center> <img src='Imagens/BannerLoja.png' border='0'><br> <table cellpadding='5' cellspacing='1' width='800'> <tr> <td align='center'> "; $sql = mysql_query("SELECT * FROM produtos ORDER BY id_produtos LIMIT $inicio,12") or die(mysql_error()); // Exibimos os nomes dos produtos e seus repectivos valores while ($ver = mysql_fetch_assoc($sql)) { echo '<div style="border: 0px width: 800px; float: center;">'; // Mostra a imagem e nome do produto. echo ' <div width="200" style="border: 1px solid white; width: 195px; float: left;"> <br> <a href="detalhes.php?id='.$ver['id'].'"><img width=120 height=90 border=0 src="Produtos/'.$ver['imagens'].'"></a> <br> <b>'.$ver['produto'].'</b> <br> '; // Mostra o preço. echo '€ '.number_format($ver['preco'], 2, ',', '').'<br>'; // Mostra o link pra adicionar ao carrinho. echo '<a href="carrinho.php?produto='.$ver['id_produtos'].'"><img src="Imagens/BotAdicionar.png" border="0"></a><br><br></div>'; } echo " </td> </tr> </table> "; // FIM DO CONTEUDO ################################################################################### } mysql_free_result($select); $conta_reg = mysql_query("SELECT COUNT(*) AS id_produtos FROM produtos LIMIT 12") or die(mysql_error()); $total_reg = mysql_result($conta_reg,0,id_produtos); $paginas = ceil($total_reg/9); mysql_free_result($conta_reg); ?> <table cellpadding='5' cellspacing='1' width='800'> <tr> <td class="pag" align='left'> <a href="?pg=1">Primeira Página</a> </td> <td class="pag" align='center'> <? for($i = $pg-LINKS; $i <= $pg-1; $i++){ ($i <= 0) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>'; } print '<a href="#">'.$pg.'</a>'; for($i = $pg+1; $i <= $pg+9; $i++){ ($i > $paginas) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>'; } ################################################################################### // FIM DA PAGINAÇÃO ?> </td> <td class="pag" align='right'><a href="?pg=<? print $paginas; ?>">Última Página</a></td> </tr> </table> </body> </html> <hr size=1 color=green width=800> <a href='verProdutos.php'><img src='Imagens/BotCarrinho.png' border='0'></a> </body> </html> remover.php <? ob_start(); ?> <? session_start(); include('conexao.php'); // Obtem a id da sessão. $sessao = session_id(); // Obtem o código do produto. $produto = $_GET['id_produtos']; // Apaga o produto do carrinho. mysql_query('DELETE FROM carrinho WHERE produtosnocarrinho="'.$produto.'" AND sessao="'.$sessao.'"'); // Redireciona para a página de visualização. header('Location: verProdutos.php'); ?> <? ob_flush(); ?> carrinho.php <? ob_start(); session_start(); include "conexao.php"; $sessao = session_id(); $produtosnocarrinho = intval($_GET["produto"]); // Aqui verifico se existe algum carrinho pra essa sessão $selc = mysql_query("SELECT * FROM carrinho WHERE sessao='$sessao' AND produtosnocarrinho='$produtosnocarrinho'") or die(mysql_error()); $numrows = mysql_num_rows($selc); $arr = mysql_fetch_array($selc); if($numrows > 0) { // Se retornar carrinhos para esta sessão, a var $quantidade assume o valor do campo quantidade $quantidade = $arr["quantidade"]; } else { // Caso contrário, assume valor 0 $quantidade = "0"; } if($quantidade >= 1) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento quantidade em +1 $nova_quantidade = $quantidade + 1; $sql = "UPDATE carrinho SET quantidade='$nova_quantidade' WHERE sessao='$sessao' AND produtosnocarrinho='$produtosnocarrinho'"; } else { // Se não existir, registro com quantidade = 1 $sql = "INSERT INTO carrinho (id_carrinho, produtosnocarrinho, quantidade, sessao) VALUES('', '$produtosnocarrinho', '1', '$sessao')"; } $query = mysql_query($sql); if($query){ echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>"; header( 'refresh:3; url=verProdutos.php' ); echo "<center><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='Imagens/BotCarrinho.png' border='0'></a>"; } else { echo "O produto não pôde ser adicionado ao carrinho!"; echo "<center><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a>"; } ob_flush(); ?> verProdutos.php <? ob_start(); session_start(); include('conexao.php'); // Obtendo a id da sessão $sessao = session_id(); ?> <html> <body> <form action='actualiza.php' method='post'> <? // Requisita à base de dados a id, quantidade e nome do produto. // Como o nome está numa tabela diferente dos outros itens, incluo o nome da tabela junto ao nome do campo. $itens = mysql_query('SELECT carrinho.produtosnocarrinho, carrinho.quantidade, produtos.produto, produtos.imagens, produtos.preco FROM carrinho,produtos WHERE carrinho.produtosnocarrinho = produtos.id_produtos AND carrinho.sessao = "'.$sessao.'"'); // Uma verificação simples se o carrinho está vazio ou não if(mysql_num_rows($itens) < 1){ // Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja echo "<center><br><font size='5' color='red'><b>O carrinho está vazio...</b></font><br><br><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a>"; header( 'refresh:3; url=index.php' ); } else { // Exibe os itens presentes no carrinho ?> <center> <img src='Imagens/BannerCarrinho.png' border='0'><br> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800'> <tr valign="middle"> <td bgcolor="#e3e3e3" width="40" align="left" valign="middle"> <font color='#99cc33' size='2'><b></b> </td> <td bgcolor="#e3e3e3" width="600" align="left" valign="middle"> <font color='#99cc33' size='2'><b>Lista de Produtos:</b> </td> <td bgcolor="#eeeeee" width="100"> <center> <font color='#99cc33' size='2'><b>Preço Uni.</b> </td> <td bgcolor="#e3e3e3" width="50"> <center> <font color='#99cc33' size='2'><b>Quant.</b> </td> <td bgcolor="#eeeeee" width="50"> <center> <font color='#99cc33' size='2'><b>Opções</b> </td> </tr> <? // Calcular o preço total $total = 0; // Dou um loop pra listar is itens do carrinho de compras while($item = mysql_fetch_assoc($itens)){ ?> <tr valign="middle"> <td bgcolor="#e3e3e3" width="40" align="left" valign="middle"> <center><b><a href="detalhes.php?id_produtos=<? echo $item['produtosnocarrinho'] ?>"><? echo '<img width=40 height=30 border=0 src="Produtos/'.$item['imagens'].'">' ?></a></b> </td> <td bgcolor="#e3e3e3" width="600" align="left" valign="middle"> <b><a href="detalhes.php?id_produtos=<? echo $item['produtosnocarrinho'] ?>"><? echo $item['produto'] ?></a></b> </td> <td bgcolor="#eeeeee" width="100"> <center> <b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?> </td> <td bgcolor="#e3e3e3" width="50"> <center> <input size='4' type='text' name='quantidade[<? echo $item["produtosnocarrinho"] ?>]' value='<? echo $item["quantidade"] ?>'> </td> <td bgcolor="#eeeeee" width="50"> <center> <a href='remover.php?id_produtos=<? echo $item["produtosnocarrinho"] ?>'><img src='Imagens/BotRemover.png' border='0'></a> </td> </tr> <? $total += $item['preco'] * $item['quantidade']; } ?> </table> <center> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800' border='0'> <tr> <td bgcolor='#99cc33' width='560'> <font color='#ffffff' size='4'> <b>Total: €<font color='yellow'> <? echo number_format($total, 2, ',', ''); ?></b></font> - Iva incluído à taxa em vigor.</font> </td><td><font color='#666666' size='2'> Preço s/portes de envio. <a href='portes.php'>Ver Preço Portes</a></font> </td> </tr> </table> <center> <hr size=1 width="800" color="green"> <INPUT TYPE="image" SRC="Imagens/BotActualizar.png" BORDER="0"> <a href=''><img src='Imagens/BotLimpar.png' border='0'></a> <a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a> <a href='finalizar.php'><img src='Imagens/BotFinalizar.png' border='0'></a> </form> <? } ob_flush(); ?> </body> </html> criamos a página detalhes.php <? ob_start(); include('conexao.php'); ?> <html> <body> <? $id_produtos = $_GET['id_produtos']; $itens = mysql_query("SELECT * FROM produtos WHERE id_produtos = '$id_produtos'") or die(mysql_error()); if(mysql_num_rows($itens) < 1){ echo "Produto inválido!<br><br><a href='index.php'>Ir para a loja</a>"; } else { while($item = mysql_fetch_assoc($itens)){ ?> <center> <img src='Imagens/BannerLoja.png' border='0'><br> <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800'> <tr> <td bgcolor='#ffffff' align='center'> <? echo ' <br> <img width=400 height=300 border=0 src="Produtos/'.$item['imagens'].'"> <br> <b>'.$produto['produto'].'</b> <br> '; ?> </td> </tr> <tr> <td bgcolor='#99cc33' align='center'> <center> <font size='2' color='#ffffff'><b>Detalhes do Produto:</b></font> </td> </tr> <tr> <td bgcolor='#e3e3e3' align='center'> <font size='4' color='#000000'><b><? echo $item['produtosnocarrinho'] ?><? echo $item['produto'] ?></b></font> <? echo ' <br> <b><hr size=1 color=green><font color=#99cc33>Categoria:</font></b><br>'.$item['categoria'].' <br> <b><hr size=1 color=green><font color=#99cc33>Referencia:</font></b><br>'.$item['referencia'].' <br> <b><hr size=1 color=green><font color=#99cc33>Data Inserção:</font></b><br>'.$item['data'].' <br> <b><hr size=1 color=green><font color=#99cc33>Disponíbilidade:</font></b><br>'.$item['disponibilidade'].' <br> <b><hr size=1 color=green><font color=#99cc33>Descrição Detalhada:</font></b><br>'.$item['detalhes'].' <br> <b><hr size=1 color=green><font color=#99cc33>Stock Actual:</font></b><br>'.$item['stock'].' '; ?> <br> <b><hr size=1 color=green><font color=#99cc33>Preço:</font></b><br> <font size='4' color='red'> <b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?> </td> </tr> <tr> <td bgcolor='#99cc33' align='center'> <?echo'<a href="carrinho.php?produto='.$item['id_produtos'].'"><img src="../Produtos/Imagens/BotAdicionar.png" border="0"></a>';?><a href="verProdutos.php"><img src="Imagens/BotCarrinho.png" border="0"></a> <a href="#" onclick="window.print();return false;"><img src="Imagens/BotImprimir.png" border="0"></a> <a href="index.php"><img src="Imagens/BotLoja.png" border="0"></a> <a href="finalizar.php"><img src="Imagens/BotFinalizar.png" border="0"></a> </td> </tr> </table> <? }} ob_flush(); ?> </body> </html> criamos a pagina actualizar.php <? ob_start(); session_start(); include('conexao.php'); // Obtem a id da sessão. $sessao = session_id(); // Obtem a lista de produtos. $itens = $_POST['quantidade']; // Separa a lista e actualiza a base de dados. foreach($itens as $chave => $quantidade){ // O valor de $chave é o código do produto enviado entre []. // O valor de $quantidade é a quantidade do produto. // Multiplicar por um garante que o valor será um número. $quantidade *= 1; $chave *= 1; // Atualiza os valores. mysql_query('UPDATE carrinho SET quantidade="'.$quantidade.'" WHERE produtosnocarrinho="'.$chave.'" AND sessao="'.$sessao.'"'); } // Retorna para a página do carrinho. header('Location: verProdutos.php') ; ob_flush(); ?> ate aqui tudo funciona bem! agora a parte complicada... como finalizar o carrinho e como criar o sistema de login adequado ao carrinho... Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 vamos começar com a parte do login... Bom para começar pensei na seguinte extrutura para a pasta "Clientes": actualizacliente.php confirmacliente.php logincliente.php logoutcliente.php mostracliente.php novocliente.php removecliente.php verificalogincliente.php então vamos la começar por algum lado... criamos um ficheiro para registo do cliente: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <center> <font face="arial" size="5" color="red"> <b>Registo de Novo Cliente</b> </font> <br> <br> <form action="novocliente.php" method="post" enctype="multipart/form-data" name="novocliente" > <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800' border='0'> <tr> <td bgcolor='#f3f3f3' width='400' valign='top'> <center> <font face="arial" size="3" color="#99cc33"> <b>INFORMAÇÕES DE ACESSO</b> </font> <hr size='1' color='green' width='400'> <br> Username: <br> <input type="text" name="username" style="width:400px"> <br> Password: <br> <input type="text" name="password" style="width:400px"> <br> Pergunta Secreta (Recuperação da Password): <br> <input type="text" name="perguntasecreta" style="width:400px"> <br> Resposta Secreta (Recuperação da Password): <br> <input type="text" name="respostasecreta" style="width:400px"> <br> <hr size='1' color='green' width='400'> <font face="arial" size="2" color="red"> <u><b>RECOMENDAÇÃO IMPORTANTE:</b></u> </font> <div align="left" style="width:380px"> <font face="arial" size="2" color="#990000"> A pergunta secreta serve para que possa recuperar a sua password de acesso, no caso de se esquecer da mesma. <br> Recomendamos que escolha uma pergunta à qual só voce poderá responder e que não partilhe essa informação com terceiros, ao faze-lo estará a permitir que essa mesma pessoa utilize os seus dados pessoais para efectuar compras sem a sua autorização. </font> </div> <hr size='1' color='green' width='400'> </td> <td bgcolor='#f3f3f3' width='400' valign='top'> <center> <font face="arial" size="3" color="#99cc33"> <b>INFORMAÇÕES PESSOAIS</b> </font> <hr size='1' color='green' width='400'> <br> Nome: <br> <input type="text" name="nome" style="width:400px"> <br> Morada: <br> <textarea name="morada" rows="3" cols="40" style="width:400px"></textarea> <br> Código Postal: <br> <input type="text" name="cpostal" style="width:400px"> <br> Localidade: <br> <input type="text" name="localidade" style="width:400px"> <br> Número de Telefone: <br> <input type="text" name="telefone" style="width:400px"> <br> Número de Telemóvel: <br> <input type="text" name="telemovel" style="width:400px"> <br> Fax: <br> <input type="text" name="fax" style="width:400px"> <br> Email: <br> <input type="text" name="email" style="width:400px"> <br> Número de Contribuinte: <br> <input type="text" name="contribuinte" style="width:400px"> <br> <hr size='1' color='green' width='400'> <input type="reset" name="Limpar" value="Limpar Formulário"> <input type="submit" name="novocliente" value="Efectuar Registo"> <br> <br> </td> </tr> </table> </form> </body> </html> isto ate aqui mostra o formulario para o cliente preencher, agora é necessario fazer com que ao clicar no botao "Efectuar Registo", este verifique se o cliente ja existe... se sim, mostra uma mensagem de erro a avisar o cliente para tentar com outros dados, caso não exista, envia um email ao cliente para que ele possa confirmar o registo. Se o registo for confirmado, insere os dados na tabela "clientes" e manda um novo mail a dar as boas vindas ao cliente mostrando os dados da sua inscrição nesse email. Como fazer isso??? Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 ok no novocliente.php <? include '../Produtos/conexao.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <center> <font face="arial" size="5" color="red"> <b>Registo de Novo Cliente</b> </font> <br> <br> <form action="novocliente.php" method="post" enctype="multipart/form-data" name="efectuarregisto" > <table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800' border='0'> <tr> <td bgcolor='#f3f3f3' width='400' valign='top'> <center> <font face="arial" size="3" color="#99cc33"> <b>INFORMAÇÕES DE ACESSO</b> </font> <hr size='1' color='green' width='400'> <br> Username: <br> <input type="text" name="username" style="width:400px"> <br> Password: <br> <input type="text" name="password" style="width:400px"> <br> Pergunta Secreta (Recuperação da Password): <br> <input type="text" name="perguntasecreta" style="width:400px"> <br> Resposta Secreta (Recuperação da Password): <br> <input type="text" name="respostasecreta" style="width:400px"> <br> <hr size='1' color='green' width='400'> <font face="arial" size="2" color="red"> <u><b>RECOMENDAÇÃO IMPORTANTE:</b></u> </font> <div align="left" style="width:380px"> <font face="arial" size="2" color="#990000"> A pergunta secreta serve para que possa recuperar a sua password de acesso, no caso de se esquecer da mesma. <br> Recomendamos que escolha uma pergunta à qual só voce poderá responder e que não partilhe essa informação com terceiros, ao faze-lo estará a permitir que essa mesma pessoa utilize os seus dados pessoais para efectuar compras sem a sua autorização. </font> </div> <hr size='1' color='green' width='400'> </td> <td bgcolor='#f3f3f3' width='400' valign='top'> <center> <font face="arial" size="3" color="#99cc33"> <b>INFORMAÇÕES PESSOAIS</b> </font> <hr size='1' color='green' width='400'> <br> Nome: <br> <input type="text" name="nome" style="width:400px"> <br> Morada: <br> <textarea name="morada" rows="3" cols="40" style="width:400px"></textarea> <br> Código Postal: <br> <input type="text" name="cpostal" style="width:400px"> <br> Localidade: <br> <input type="text" name="localidade" style="width:400px"> <br> Número de Telefone: <br> <input type="text" name="telefone" style="width:400px"> <br> Número de Telemóvel: <br> <input type="text" name="telemovel" style="width:400px"> <br> Fax: <br> <input type="text" name="fax" style="width:400px"> <br> Email: <br> <input type="text" name="email" style="width:400px"> <br> Número de Contribuinte: <br> <input type="text" name="contribuinte" style="width:400px"> <br> <hr size='1' color='green' width='400'> <input type="reset" name="Limpar" value="Limpar Formulário"> <input type="submit" name="efectuarregisto" value="Efectuar Registo"> <br> <br> </td> </tr> </table> </form> </body> </html> <? // Se o cliente clicou no botão "Efectuar Registo" efectua as acções... if ($_POST['efectuarregisto']){ // Recupera os dados dos campos $id_clientes = ''; $username = $_POST['username']; $password = $_POST['password']; $perguntasecreta = $_POST['perguntasecreta']; $respostasecreta = $_POST['respostasecreta']; $nome = $_POST['nome']; $morada = $_POST['morada']; $cpostal = $_POST['cpostal']; $localidade = $_POST['localidade']; $telefone = $_POST['telefone']; $telemovel = $_POST['telemovel']; $fax = $_POST['fax']; $email = $_POST['email']; $contribuinte = $_POST['contribuinte']; $facturas = ''; // Insere os dados no banco $sql = mysql_query("INSERT INTO clientes VALUES ( '".$id_clientes."', '".$username."', '".$password."', '".$perguntasecreta."', '".$respostasecreta."', '".$nome."', '".$morada."', '".$cpostal."', '".$localidade."', '".$telefone."', '".$telemovel."', '".$fax."', '".$email."', '".$contribuinte."', '".$facturas."' )"); // Se os dados forem inseridos com sucesso... if ($sql){ echo "<font face='arial' size='3' color='red'><center><br>Cliente Registado com Sucesso!<br>Por favor confirme o seu registo no email que lhe acabámos de enviar.</font>"; }} // Se houver mensagens de erro, exibe-as. if (count($error) != 0){ foreach ($error as $erro){ echo $erro . "<br>"; }} ?> com este codigo ele insere os produtos na DB... acontece que falta ao clicar no botao "Efectuar Registo", este verifique se o cliente ja existe... se sim, mostra uma mensagem de erro a avisar o cliente para tentar com outros dados, caso não exista, envia um email ao cliente para que ele possa confirmar o registo. Se o registo for confirmado, insere os dados na tabela "clientes" e manda um novo mail a dar as boas vindas ao cliente mostrando os dados da sua inscrição nesse email. Como fazer isso??? em vez disso o que o script ta a fazer é apenas enviar os dados para o DB. Compartilhar este post Link para o post Compartilhar em outros sites
henry franklin 0 Denunciar post Postado Julho 17, 2009 Ricky, Já que vais utilizar apenas sessões, repare que continuas inserindo no banco de dados. alguns exemplos: remover.php // Apaga o produto do carrinho. mysql_query('DELETE FROM carrinho WHERE produtosnocarrinho="'.$produto.'" AND sessao="'.$sessao.'"'); carrinho.php if($quantidade >= 1) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento quantidade em +1 $nova_quantidade = $quantidade + 1; $sql = "UPDATE carrinho SET quantidade='$nova_quantidade' WHERE sessao='$sessao' AND produtosnocarrinho='$produtosnocarrinho'"; } else { // Se não existir, registro com quantidade = 1 $sql = "INSERT INTO carrinho (id_carrinho, produtosnocarrinho, quantidade, sessao) VALUES('', '$produtosnocarrinho', '1', '$sessao')"; } verProdutos.php // Requisita à base de dados a id, quantidade e nome do produto. // Como o nome está numa tabela diferente dos outros itens, incluo o nome da tabela junto ao nome do campo. $itens = mysql_query('SELECT carrinho.produtosnocarrinho, carrinho.quantidade, produtos.produto, produtos.imagens, produtos.preco FROM carrinho,produtos WHERE carrinho.produtosnocarrinho = produtos.id_produtos AND carrinho.sessao = "'.$sessao.'"'); // Uma verificação simples se o carrinho está vazio ou não if(mysql_num_rows($itens) < 1){ actualizar.php // Atualiza os valores. mysql_query('UPDATE carrinho SET quantidade="'.$quantidade.'" WHERE produtosnocarrinho="'.$chave.'" AND sessao="'.$sessao.'"'); } Como checar se existe?? Oras, pra isso q serve 'SELECT' tem um tutorial q vale a pena ler trabalha com carrinho em sessoes. http://imasters.com.br/artigo/1908/php/carrinho_de_compras_simples_usando_arrays_e_sessions_-_parte_03/ Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 como assim? os produtos tem q estar no DB ne? a sessao ia apenas ser usada para identificar que naquele momento os dados pertenciam a tal carrinho e tal pessoa... como fazer isso? isto de forum é mt bonito mas n ter a opcao para se poder falar em directo é uma seca, demora eternidades ate se poder obter uma resposta... :(/> Compartilhar este post Link para o post Compartilhar em outros sites
henry franklin 0 Denunciar post Postado Julho 17, 2009 no link que te passei tem mostrando como utilizar apenas sessões. após o "finalizar" ai sim será salvo no banco de dados. fica mais prático assim. os produtos sim estrão no banco de dados. os itens no "carrinho" é que estarão na sessão(será identificado pelo valor de seu 'id' no banco [id_produtos]) você pode salvar na sessão assim: $_SESSION['carrinho'][$idDesteProduto]= 'valores....'; é um exemplo. vai desenvolvendo... Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 17, 2009 tentei substituir isto // $sql = "INSERT INTO carrinho (id_carrinho, produtosnocarrinho, quantidade, sessao) VALUES('', '$produtosnocarrinho', '1', '$sessao')"; por algo assim... $_SESSION['carrinho'][$id_carrinho]= ''; $_SESSION['carrinho'][$id_produtos]= '$produtosnocarrinho'; $_SESSION['carrinho'][$quantidade]= '1'; $_SESSION['carrinho'][$sessao]= '$sessao'; mas nao deixa adicionar o produto, aparece a mensagem "O produto não pôde ser adicionado ao carrinho!" não sei se percebi bem o que era pra fazer ou algo esta mt errado aqui... nao estou aconseguir desenvolver nada de nada :(/> Compartilhar este post Link para o post Compartilhar em outros sites
henry franklin 0 Denunciar post Postado Julho 18, 2009 Oras Ricky, como retirastes o "salvamento" em bd do carrinho, retires tbm a checagem pois nao está a lhe retornar valores algum Ex. if(mysql_num_rows($itens) < 1){ Não pude logar ontem por haver problemas na conexão. Amanhã provavelmente não estarei on-line. abraço. Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 19, 2009 como é que eu posso alterar este codigo: <? ob_start(); session_start(); include "conexao.php"; $sessao = session_id(); $prod = intval($_GET["produto"]); // Aqui verifico se existe algum carrinho pra essa sessão $selc = mysql_query("SELECT * FROM carrinho WHERE sessao='$sessao' AND cod='$prod'") or die(mysql_error()); $numrows = mysql_num_rows($selc); $arr = mysql_fetch_array($selc); if($numrows > 0) { // Se retornar carrinhos para esta sessão, a var $qtde assume o valor do campo quant $qtde = $arr["quant"]; } else { // Caso contrário, assume valor 0 $qtde = "0"; } if($qtde >= 1) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento quantidade em +1 $nova_qtde = $qtde + 1; $sql = "UPDATE carrinho SET quant='$nova_qtde' WHERE sessao='$sessao' AND cod='$prod'"; } else { // Se não existir, registro com quantidade = 1 $sql = "INSERT INTO carrinho (id, cod, quant, sessao) VALUES('', '$prod', '1', '$sessao')"; } $query = mysql_query($sql); if($query) { echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>"; header( 'refresh:3; url=verProdutos.php' ); echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='BotCarrinho.png' border='0'></a>"; } else { echo "O produto não pôde ser adicionado ao carrinho!"; echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a>"; } ob_flush(); ?> para em vez de trabalhar com o sql, trabalhar em sessoes? Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 20, 2009 ninguem responde... este forum n so esta muito mais lento desde que mudaram de visual, como esta a ficar morto, ja quase ninguem ajuda a ninguem Compartilhar este post Link para o post Compartilhar em outros sites
henry franklin 0 Denunciar post Postado Julho 20, 2009 Rick, O fórum nao está lento, é a imensidão dos códigos q postaste. Tens q demonstrar algum aprendizado e disposição em aprender. Não estás demonstrando que estás a pesquisar e tentar entender o que lhe é passado. Aqui é apenas para suprimir suas dúvidas. Pesquise no portal do PHP como lidar com sessões, como usar Arrays e como resgatar estes valores. Se emperrares denovo poste suas dúvidas (não o código [demonstra preguiça]). Neste fórum tem profissionais que trabalham como isso (e amam), e todo programador gosta de compartilhar imformações, não cedê-las todas. Todo Programador, profissional ou não, obtem seus frutos e resultados pesquisando. Pesquise e sem dívidas serás ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
rickytuga 0 Denunciar post Postado Julho 21, 2009 andei a tentar e tentar e é o seguinte... este script n esta a dar erro algum, mas mostra o carrinho vazio... a ideia seria inserir os produtos numa session para mostrar no carrinho sempre que se adiciona 1 produto... <? ob_start(); session_start(); include "conexao.php"; $sessao = session_id(); $produtos = intval($_GET["produtos"]); // Verifica se existe algum carrinho aberto nesta sessão $sql = "SELECT * FROM carrinho,produtos WHERE sessao='$sessao' AND id_produtos='$produto'" or die(mysql_error()); // Consulta a tabela $consulta = mysql_query($sql); // Transforma os valores recebidos da tabela em arrays $arr = mysql_fetch_array($consulta); // Se existir um carrinho aberto nesta sessão... if($numrows > 0){ // A variável $quantidade assume o valor do campo quantidade $id_produtos = $arr["id_produtos"]; $quantidade = $arr["quantidade"]; $sessao = $arr["sessao"]; $produto = $arr["produto"]; $produtosnocarrinho = $arr["$produtosnocarrinho"]; } // Caso contrário, assume o valor 0(zero) else{ $quantidade = "0"; } // Verifica se já existe um produto igual registado no carrinho if($quantidade >= 1){ // Se existir, aumenta a quantidade em +1 $nova_qtde = $quantidade + 1; $sql = "UPDATE carrinho,produtos SET quantidade='$nova_qtde' WHERE sessao='$sessao' AND id_produtos='$produto'"; } // Se não existir... else{ // Regista com a quantidade = 1 $sql = "INSERT INTO carrinho (id_carrinho, produtosnocarrinho, quantidade, sessao) VALUES('', '$produto', '1', '$sessao')"; } $query = mysql_query($sql); // Se existir... if($query){ // Mostra a mensagem e volta para a pagina verProdutos.php após 3 segundos echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>"; header( 'refresh:3; url=verProdutos.php' ); // Mostra os botões echo "<center><a href='index.php'><img src='Imagens/BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='Imagens/BotCarrinho.png' border='0'></a>"; } // Caso contrário else{ // Mostra a mensagem e volta para a pagina index.php após 3 segundos echo "O produto não pôde ser adicionado ao carrinho!"; header( 'refresh:3; url=index.php' ); } ob_flush(); ?> o que ta mal? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 21, 2009 Veja esta video-aula. Fala sobre como montar um carrinho de compras com PHP. Link Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites