• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vsempre

Dúvida com loja online

3 mensagens neste tópico

Boas pessoal,

Estou a fazer uma pequena loja online. Encontrei o seguinte código:

produtos.php

   1.
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   2.
      <html xmlns="http://www.w3.org/1999/xhtml">
   3.
      <head>
   4.
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   5.
      <title>Carrinho de Compras</title>
   6.
      </head>
   7.
       
   8.
      <body>
   9.
      <div align="center">
  10.
      <?php
  11.
      include "Connections/conn.php";
  12.
      //*********************************************************************
  13.
      // CONFIGURAÇÃO DE BANCO DE DADOS
  14.
      //*********************************************************************
  15.
      $con = mysql_connect($hostname_conn,$username_conn,$password_conn);
  16.
      $bd = mysql_select_db($database_conn);
  17.
      ?>
  18.
      <table cellSpacing=1 cellPadding=0 width="50%" align=center border=0>
  19.
      <tr>
  20.
      <td>
  21.
      <?
  22.
      //*********************************************************************
  23.
      // GERA A INSTRUÇÃO SQL E CHAMA A FUNÇÃO PARA GERAR AS COLUNAS
  24.
      //*********************************************************************
  25.
      $sql = "SELECT * FROM tbl_produtos ORDER BY RAND() LIMIT 0,4";
  26.
      GeraColunas(2, $sql)
  27.
      ?>
  28.
      </td>
  29.
      </tr>
  30.
      </table>
  31.
      <?
  32.
      //*********************************************************************
  33.
      // FUNÇÃO: GERACOLUNAS
  34.
      // Parametros:
  35.
      // $pNumColunas (int) > Quant. de colunas para distribuição
  36.
      // $pQuery (string) > Query de registros
  37.
      //*********************************************************************
  38.
      function GeraColunas($pNumColunas, $pQuery) {
  39.
      $resultado = mysql_query($pQuery);
  40.
      echo ("<table width='100%' border='0'>\n");
  41.
      for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
  42.
       
  43.
      for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
  44.
      $linha = mysql_fetch_array($resultado);
  45.
      if ($i > $linha) {
  46.
      if ( $intCont < $pNumColunas-1) echo "</tr>\n";
  47.
      break;
  48.
      }
  49.
       
  50.
      $cod = $linha[0];
  51.
      $nome = $linha[1];
  52.
      $img = $linha[2];
  53.
      $preco = number_format($linha[3],2,",",".");
  54.
       
  55.
      if ( $intCont == 0 ) echo "<tr>\n";
  56.
      echo "<td>";
  57.
      // Aqui você inclui o conteudo
  58.
      echo "<table width='266' border='0' cellspacing='0' cellpadding='0'>";
  59.
      echo "<tr>";
  60.
      echo "<td width='250' height='141' valign='middle'><div align='center'><img src='produtos/".$img."' border='0' width='189' height='141' /></div></td>";
  61.
      echo "</tr>";
  62.
      echo "<tr>";
  63.
      echo "<td>";
  64.
      echo "<table width='92%' border='0' align='center' cellpadding='0' cellspacing='0'>";
  65.
      echo "<tr>";
  66.
      echo "<td><div align='center' style='font-size:10px;font-family:Verdana'><strong><a href='carrinho.php?cod=".$cod."&acao=incluir'>".$nome."</a></strong></div><strong><div align='center'><font color='#FF0000' size='4px'> R$ ".$preco." </font></strong></div></td>";
  67.
      echo "</tr>";
  68.
      echo "<tr>";
  69.
      echo "<td><div align='center' style='font-size:10px;font-family:Verdana'><a href='carrinho.php?cod=".$cod."&acao=incluir'><img src='imgs/add_carrinho.jpg' border='0'/></a></div><br></td>";
  70.
      echo "</tr>";
  71.
      echo "</table>";
  72.
      echo "</td>";
  73.
      echo "</tr>";
  74.
      echo "</table>";
  75.
       
  76.
      // Aqui é o final do conteudo
  77.
      echo "</td>";
  78.
       
  79.
      if ( $intCont == $pNumColunas-1 ) {
  80.
      echo "</tr>\n";
  81.
      } else { $i++; }
  82.
      }
  83.
       
  84.
      }
  85.
      echo ('</table>');
  86.
      }
  87.
       
  88.
      ?>
  89.
      </div>
  90.
      </body>
  91.
      </html>

carrinho.php

   1.
      <?php
   2.
      // Iniciamos nossa sessão que vai indicar o usuário pela session_id
   3.
      session_start();
   4.
      include "Connections/conn.php";
   5.
      // Recuperamos os valores passados por parametros
   6.
      $acao = $_GET['acao'];
   7.
      $cod = $_GET['cod'];
   8.
       
   9.
       
  10.
      // Verificamos se a acao é igual a incluir
  11.
      if ($acao == "incluir")
  12.
      {
  13.
      // Verificamos se cod do produto é diferente de vazio
  14.
      if ($cod != '')
  15.
      {
  16.
      // Se for diferente de vazio verificamos se é numérico
  17.
      if (is_numeric($cod))
  18.
      {
  19.
      // Tratamos a variavel de caracteres indevidos
  20.
      $cod = addslashes(htmlentities($cod));
  21.
       
  22.
      // Verificamos se o produto referente ao $cod já está no carrinho para o session id correnpondente
  23.
      $query_rs_carrinho = "SELECT * FROM tbl_carrinho WHERE tbl_carrinho.cod = '".$cod."' AND tbl_carrinho.sessao = '".session_id()."'";
  24.
      $rs_carrinho = mysql_query($query_rs_carrinho, $conn) or die(mysql_error());
  25.
      $row_rs_carrinho = mysql_fetch_assoc($rs_carrinho);
  26.
      $totalRows_rs_carrinho = mysql_num_rows($rs_carrinho);
  27.
       
  28.
      // Se o total for igual a zero é sinal que o produto ainda não está no carrinho
  29.
      if ($totalRows_rs_carrinho == 0)
  30.
      {
  31.
      // Aqui pegamos os dados do produto a ser incluido no carrinho
  32.
      $query_rs_produto = "select * from tbl_produtos where cod = '".$cod."'";
  33.
      $rs_produto = mysql_query($query_rs_produto, $conn) or die(mysql_error());
  34.
      $row_rs_produto = mysql_fetch_assoc($rs_produto);
  35.
      $totalRows_rs_produto = mysql_num_rows($rs_produto);
  36.
       
  37.
      // Se total for maior que zero esse produto existe e então podemos incluir no carrinho
  38.
      if ($totalRows_rs_produto > 0)
  39.
      {
  40.
      $registro_produto = mysql_fetch_assoc($rs_produto);
  41.
      // Incluimos o produto selecionado no carrinho de compras
  42.
      $add_sql = "INSERT INTO tbl_carrinho (id, cod, nome, preco, qtd, sessao)
  43.
      VALUES
  44.
      ('','".$row_rs_produto['cod']."','".$row_rs_produto['nome']."','".$row_rs_produto['preco']."','1','".session_id()."')";
  45.
      $rs_produto_add = mysql_query($add_sql, $conn) or die(mysql_error());
  46.
      }
  47.
      }
  48.
      }
  49.
      }
  50.
      }
  51.
       
  52.
      // Verificamos se a acao é igual a excluir
  53.
      if ($acao == "excluir")
  54.
      {
  55.
      // Verificamos se cod do produto é diferente de vazio
  56.
      if ($cod != '')
  57.
      {
  58.
      // Se for diferente de vazio verificamos se é numérico
  59.
      if (is_numeric($cod))
  60.
      {
  61.
      // Tratamos a variavel de caracteres indevidos
  62.
      $cod = addslashes(htmlentities($cod));
  63.
      // Verificamos se o produto referente ao $cod está no carrinho para o session id correnpondente
  64.
      $query_rs_car = "SELECT * FROM tbl_carrinho WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
  65.
      $rs_car = mysql_query($query_rs_car, $conn) or die(mysql_error());
  66.
      $row_rs_carrinho = mysql_fetch_assoc($rs_car);
  67.
      $totalRows_rs_car = mysql_num_rows($rs_car);
  68.
       
  69.
      // Se encontrarmos o registro, excluimos do carrinho
  70.
      if ($totalRows_rs_car > 0)
  71.
      {
  72.
      $sql_carrinho_excluir = "DELETE FROM tbl_carrinho WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
  73.
      $exec_carrinho_excluir = mysql_query($sql_carrinho_excluir, $conn) or die(mysql_error());
  74.
      }
  75.
      }
  76.
      }
  77.
      }
  78.
       
  79.
      // Verificamos se a ação é de modificar a quantidade do produto
  80.
      if ($acao == "modifica")
  81.
      {
  82.
      $quant = $_POST['qtd'];
  83.
      // Se for diferente de vazio verificamos se é numérico
  84.
      if (is_array($quant))
  85.
      {
  86.
      // Aqui percorremos o nosso array
  87.
      foreach($quant as $cod => $qtd)
  88.
      {
  89.
      // Verificamos se os valores são do tipo numeric
  90.
      if(is_numeric($cod) && is_numeric($qtd))
  91.
      {
  92.
      // Fazemos nosso update nas quantidades dos produtos
  93.
      $sql_modifica = "UPDATE tbl_carrinho SET qtd = '$qtd' WHERE cod = '$cod' AND sessao = '".session_id()."'";
  94.
      $rs_modifica = mysql_query($sql_modifica, $conn) or die(mysql_error());
  95.
      }
  96.
      }
  97.
      }
  98.
       
  99.
      }
100.
      ?>
101.
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
102.
      <html xmlns="http://www.w3.org/1999/xhtml">
103.
      <head>
104.
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
105.
      <title>Carrinho de Compras</title>
106.
      <style type="text/css">
107.
      <!--
108.
      .style3 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
109.
      .style4 {
110.
      color: #FF0000;
111.
      font-weight: bold;
112.
      }
113.
      -->
114.
      </style>
115.
      </head>
116.
       
117.
      <body>
118.
      <div align="center"><img src="imgs/carrinho.jpg" width="589" height="102" />
119.
      </div>
120.
      <form action="carrinho.php?acao=modifica" method="post">
121.
      <table width="100%" border="1" cellspacing="0" cellpadding="0">
122.
      <tr>
123.
      <th width="36%" scope="col"><div align="left">PRODUTO</div></th>
124.
      <th width="22%" scope="col">PREÇO</th>
125.
      <th width="13%" scope="col">QUANTIDADE</th>
126.
      <th width="14%" scope="col">SUBTOTAL</th>
127.
      <th width="15%" scope="col"> </th>
128.
      </tr>
129.
       
130.
      <?
131.
      $sql_meu_carrinho = "SELECT * FROM tbl_carrinho WHERE sessao = '".session_id()."' ORDER BY nome ASC";
132.
      $exec_meu_carrinho = mysql_query($sql_meu_carrinho, $conn) or die(mysql_error());
133.
      $qtd_meu_carrinho = mysql_num_rows($exec_meu_carrinho);
134.
       
135.
      if ($qtd_meu_carrinho > 0)
136.
      {
137.
      $soma_carrinho = 0;
138.
      while ($row_rs_produto_carrinho = mysql_fetch_assoc($exec_meu_carrinho))
139.
      {
140.
      $soma_carrinho += ($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd']);
141.
      ?>
142.
      <tr>
143.
       
144.
      <td><span class="style3">
145.
      <?=$row_rs_produto_carrinho['nome']?>
146.
      </span></td>
147.
      <td><div align="center" class="style3"><?= number_format($row_rs_produto_carrinho['preco'],2,",","."); ?></div></td>
148.
      <td><div align="center" class="style3"><input type"text" size="2" name="qtd[<?=$row_rs_produto_carrinho['cod']?>]" value="<?=$row_rs_produto_carrinho['qtd']?>" /></div></td>
149.
      <td><div align="center" class="style3"><?= number_format($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd'],2,",","."); ?></div></td>
150.
      <td><div align="center"><a href="carrinho.php?cod=<?=$row_rs_produto_carrinho['cod']?>&acao=excluir"><img src="imgs/del_carrinho.jpg" width="110" height="21" border="0" /></a></div></td>
151.
      </tr>
152.
      <?
153.
      }
154.
      }
155.
      ?>
156.
      <tr>
157.
      <td colspan="3"><div align="right"><strong>TOTAL:</strong>  </div> <div align="right"></div> <div align="right"></div></td>
158.
      <td><div align="center" class="style3 style4">
159.
      <?= number_format($soma_carrinho,2,",","."); ?></div></td>
160.
      <td> </td>
161.
      </tr>
162.
      <tr>
163.
      <td colspan="5"><table width="100%" border="0" cellspacing="0" cellpadding="0">
164.
      <tr>
165.
      <th width="33%" height="60" scope="col"><span class="style3"><a href="produtos.php"><img src="imgs/comprando.jpg" width="287" height="40" border="0" /></a></span></th>
166.
      <th width="33%" scope="col"> </th>
167.
      <th width="34%" scope="col"><label>
168.
      <input type="image" name="imageField" src="imgs/atualizar.jpg" />
169.
      </label></th>
170.
      </tr>
171.
      </table></td>
172.
      </tr>
173.
      </table>
174.
      </form>
175.
      </body>
176.
      </html>

Ele está a funcionar a 100%, porém gostaria de adicionar ao index.php o nº total de artigos que o cliente esta a comprar e o seu valor.

Outra dúvida, depois de finalizar a compra, o session_id continua activo.. fiz o seguinte codigo:

if ($acao == "finaliza")
{
mail("vsempre@tugamail.com","Formulário recebido","From:vsempre@tugamail.com");
session_destroy();
}

Se alguém me puder ajudar, agradeço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol n m parece que alguem vá analizar tanto codigo para te dar a solução.

tenta aprender umas coisas de php ve como funcionam as ligações a base de dados, querys e afins e vais ver que é facil

fica bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que a nível de código nem é assim tanto..

Eu já ando à volta disto à dois dias.. e ainda não consegui.. ;)

Se alguém me puder ajudar, agradeço imenso!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora