Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Enviando dados do carrinho por email

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida Enviando dados do carrinho por email

    Pessoal é minha primeira vez aqui e vim a procura do que não encontrei até agora ou pelo menos não encontrei a explicação que preciso.
    É o seguinte: Tenho um carrinho de compras no meu site que funciona assim:

    tenho uma tabela chamada tbl_carrinho com os seguintes campos, que grava a sessao do cliente enquanto ele faz a selecao dos produtos.

    Código:
    CREATE TABLE tbl_carrinho (
      id int(11) NOT NULL auto_increment,
      cod int(11) NOT NULL default '0',
      nome varchar(150) NOT NULL default '',
      preco double(10,2) NOT NULL default '0.00',
      qtd int(11) NOT NULL default '0',
      sessao int(2) NOT NULL default '0',
      codigop varchar(30) NOT NULL default '',
      PRIMARY KEY  (id)
    ) TYPE=MyISAM;
    Após os dados serem inseridos no carrinho o usuário é direcionado para a página com os campos para ele preencher: (Vou postar os codigos resumidos)

    Código:
    <?php
    session_start();
    ?>
    <?php
    include "Connections/conn.php";
    // Recuperamos os valores passados por parametros
    $sessao =  $_GET['sessao'];
    
    ?>
    
    <form method="post" onSubmit="return valida(this)" name="contato"  action="formcompra.php">
    
      <?
      $sql_meu_carrinho = "SELECT * FROM tbl_carrinho WHERE  sessao = '".session_id()."' ORDER BY nome ASC";
      $exec_meu_carrinho =  mysql_query($sql_meu_carrinho, $conn) 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']*$row_rs_produto_carrinho['qtd']);
      ?>
    <input name="nomep" readonly="readonly" type="text" class="fomu" id="nomep" value="<?=$row_rs_produto_carrinho['nome']?>" size="25"/>
    <input name="codigop" readonly="readonly" type="text" class="fomu" id="codigop" value="<?=$row_rs_produto_carrinho['codigop']?>" size="5"/>
    <input name="preco" readonly="readonly" type="text" class="fomu" id="preco" value="<?= number_format($row_rs_produto_carrinho['preco'],2,",","."); ?>" size="6"/>
    <input name="qtd" readonly="readonly" type="text" class="fomu" id="qtd" value="<?=$row_rs_produto_carrinho['qtd']?>" size="5"/>
    <input name="subtotal" readonly="readonly" type="text" class="fomu" id="subtotal" value="<?= number_format($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd'],2,",","."); ?>" size="4"/>
    
        <?
      }
    }
      ?>
    <input name="total" readonly="readonly" type="text" class="fomu" id="total" value="<?= number_format($soma_carrinho,2,",","."); ?>" size="4"/>
                 <input name="nome" type="text" class="fomu" size="38"/>
                  <input name="email" type="text" class="fomu" size="38"/>
                     <input name="telefone" type="text" class="fomu" id="telefone2" size="12"/>
                      <input name="endereco" type="text" class="fomu" id="endereco" size="40"/>
                    <input name="numero" type="text" class="fomu" id="numero" size="5"/>
                     <input name="cidade" type="text" class="fomu" size="25"/>
                    <select name="estado" class="fomu" id="estado">
                          <option>Selecione...</option>
                          <option value="AC">AC</option>
                          // outros
                        </select>
    <input name="imageField2" width="150" height="28" type="image" src="imagens/atualizar.jpg" title="Alterar" /></th>
    <input name="imageField" width="150" height="40" type="image" src="imagens/finaliza.jpg" title="Alterar" /></label></th>
    
    </form>
    Assim que o cliente preenche os dados como nome e tals, ele clica em finalizar ai chama a página formcompra.php com as seguintes configurações:

    Código:
    <?php
    $date = date("d/m/Y h:i");
    
    // pegar os valores vindos das vari�veis
    $nomep = $_POST['nomep'];
    $codigop= $_POST['codigop'];
    $preco = $_POST['preco'];
    $qtd = $_POST['qtd'];
    $subtotal = $_POST['subtotal'];
    $total = $_POST['total'];
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $telefone = $_POST['telefone'];
    $endereco = $_POST['endereco'];
    $numero = $_POST['numero'];
    $cidade = $_POST['cidade'];
    $estado = $_POST['estado'];
    $quantidade = $_POST['quantidade'];
    
    //Configura��o dos meus dados e do Site
    $nome_do_site="xxxxxxxxx";
    $email_para_onde_vai_a_mensagem = "xxxxxxxxxxx";
    $nome_de_quem_recebe_a_mensagem = "xxxxxxxxxxxxxx";
    $exibir_apos_enviar='sair.php';
    
    //Configura��o da mensagem original
    $cabecalho_da_mensagem_original="From: $name <$email>\n";
    $assunto_da_mensagem_original="xxxxxxxxxxxxxxxx";
    
    // Como receberei as informa��es no e-mail
    
    $configuracao_da_mensagem_original="
    
    ENVIADO POR: $nome\n
    Produto: $nomep\n
    Nome: $nome\n
    Email: $email\n
    Telefone: $telefone\n
    Endereco: $endereco\n
    Numero: $numero\n
    Cidade: $cidade\n
    Estado: $estado\n
    Quantidade: $qtd\n
    ENVIADO EM: $date
    
    ";
    
    //Mensagem de resposta - Ela retorna com o campo assunto digitado pelo usuario
    
    $assunto_da_mensagem_de_resposta = "Dados do Pedido";
    $cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n";
    $configuracao_da_mensagem_de_resposta="Obrigado pelo Pedido!\nEstaremos entrando em contato em breve, informando os dados completos da sua compra e os dados para deposito.\nAtenciosamente;\n$nome_do_site\n\nDados do Pedido:\n\nPedido: $nomep\nQuantidade: $qtd\n\nEnviado em: $date";
    
    //Dados do envio - Pega o Assunto digitado pelo usu�rio
    $assunto_digitado_pelo_usuario="n";
    
    //Envio da msgm original
    $headers = "$cabecalho_da_mensagem_original";
    
    if($assunto_digitado_pelo_usuario=="n"){
    $assunto = "$assunto_da_mensagem_original";
    }
    $seuemail = "$email_para_onde_vai_a_mensagem";
    $mensagem = "$configuracao_da_mensagem_original";
    mail($seuemail,$assunto,$mensagem,$headers);
    
    //Resposta autom�tica
    $headers = "$cabecalho_da_mensagem_de_resposta";
    if($assunto_digitado_pelo_usuario=="n"){
    $assunto = "$assunto_da_mensagem_de_resposta";
    }else{
    $assunto = "Re: $nomep";
    }
    
    $mensagem = "$configuracao_da_mensagem_de_resposta";
    mail($email,$assunto,$mensagem,$headers);
    echo "<script>window.location='$exibir_apos_enviar'</script>";
    
    ?>
    O que acontece e que só tá pegando o último iten do carrinho. Como faço para pegar todos?
    Aguardo ajuda...

  • Font Size
    #2
    Olá. Então.

    Quando vc faz o while ($row_rs_produto_carrinho = mysql_fetch_assoc($exec_meu_carrinho)) acaba criando um formulário com campos de nomes identicos, ou seja:
    <input name="nomep">
    dai o outro também chama
    <input name="nomep">
    e por ai em diante.

    Abra o código fonte gerado em HTML e repare, voce terá varios formulários com os nomes repetidos.

    Quando isso acontece, apenas o último é valido, pois ele acaba sobrescrevendo os demais.


    Seguindo a sua linha de raciocínio, para fazer isso funcionar, cada campo do formulário deveria ser um array, mas te adianto que isso vai dar um trabalhão danado e muita dor de cabeça. O mais fácil seria dar um novo SELECT na base quando chamar o formcompra.php e construir o email com base nos resultados desse select

    Outra dica é que voce está usando sessao int(2) NOT NULL default '0', na tabela. Até onde eu sei, uma sessão tem 32 caracteres além de ser alphanumérico, voce poderia usar um varchar(32) e criar um indice nesse campo, vai evitar colisões de sessão no futuro, já que vc faz select com base nesse valor.

    boa sorte

    Comment

    X
    Working...
    X