Ir para o conteúdo
psan7os

Passar lista de email depois de efectuar a compra

Mensagens Recomendadas

psan7os

Bom dia pessoal, mais uma vez solicito a vossa ajuda, tenho um carrinho de compras com um botão finalizar, e ao finalizar quero enviar a lista de produtos, mas como é usado um foreach só é passado o valor do ultimo produto adicionado, que soluções me apresentam?

carrinho.php

    //session_start();

    if(!isset($_SESSION['carrinho'])){
        $_SESSION['carrinho'] = array();
    }

    //adiciona produto

    if(isset($_GET['acao'])){

        //ADICIONAR CARRINHO
        if($_GET['acao'] == 'add'){
        $id = intval($_GET['id']);
        if(!isset($_SESSION['carrinho'][$id])){
            $_SESSION['carrinho'][$id] = 1;
        }else{
            $_SESSION['carrinho'][$id] += 1;
        }
        }

        //REMOVER CARRINHO
        if($_GET['acao'] == 'del'){
        $id = intval($_GET['id']);
        if(isset($_SESSION['carrinho'][$id])){
            unset($_SESSION['carrinho'][$id]);
        }
        }

        //ALTERAR QUANTIDADE
        if($_GET['acao'] == 'up'){
        if(is_array($_POST['prod'])){
            foreach($_POST['prod'] as $id => $qtd){
                $id = intval($id);
                $qtd = intval($qtd);
                if(!empty($qtd) || $qtd <> 0){
                    $_SESSION['carrinho'][$id] = $qtd;
                }else{
                    unset($_SESSION['carrinho'][$id]);
                }
            }
        }
        }

    }
if(count($_SESSION['carrinho']) == 0){
echo '<tr><td colspan="5">Não há nenhum produto no carrinho.</td></tr>';
$disabled = 'disabled="disabled"';
}else{
                    require("conexao.php");
    $disabled = "";
                    $total = 0;
                    foreach($_SESSION['carrinho'] as $id => $qtd){
                            $sql = "SELECT * FROM produtos WHERE id= '$id'";
                            $qr = mysql_query($sql) or die(mysql_error());
                            $ln = mysql_fetch_assoc($qr);


                            // ESCREVE NA TABELA
        $nome = $ln['nome'];
                            $preco = $ln['preco'];
                            $sub = number_format($ln['preco'] * $qtd, 2, ',','.');

                            $total += $ln['preco'] * $qtd;
                            $array = $_SESSION['carrinho'] ;
        $_SESSION['array'] = $array;

                        echo '<tr>    
                                <td>'.$nome.'</td>
                                <td align="center"><input type="text" align="center" size="2" name="prod['.$id.']" value="'.$qtd.'" /></td>
                                <td align="center">'.$preco.' €</td>
                                <td align="center"> '.$sub.' €</td>
                                <td bordercolor="#333333" style="border-top-right-radius:10px;"><a href="?acao=del&id='.$id.'"><input type="BUTTON" VALUE="X"></a></INPUT></td>

                            </tr>
        <tr><td style="border-top-RIGHT-radius:10px;" bgcolor="#FFFFFF" colspan="5"></td></tr>';
                    }
                        $total = number_format($total, 2, ',', '.');
                        echo '<tr>
                                <td colspan="3" align="right">Total</td>
                                <td colspan="2" align="center">'.$total.' €</td>
                            </tr>';
                    }

    ?>

    </tbody>

    <tfoot>
        <tr>
        <td colspan="5" align="center" style="border-bottom-left-radius:10px; border-bottom-right-radius:10px;">
        <input type="submit" value="Atualizar Carrinho" <?php echo $disabled?> />
        <a href="../php/home.php"><input type="button" value="Continuar a Comprar" /></a>
        <a href="finalizar.php"><input type="button" value="Finalizar Compra" <?php echo $disabled?>/></a>
        </td>
</tfoot>
    </form></table>

E o finalizar.php

<?php
session_start();
if (isset($_SESSION['logado']))
{
}
else
{
echo ("<SCRIPT LANGUAGE='Javascript'>
window.alert('Precisa de fazer o login para ter acesso a esta página.')
window.location.href='../home.php';
</SCRIPT>");
}
mysql_connect("host","user","pass");
mysql_select_db("db");

$username = $_SESSION["username"];
$password = $_SESSION["password"];
$con = mysql_connect("host","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("bd", $con);
$resultado = mysql_query("select * from registo where username='" .$username ."'");
$num_afect=mysql_affected_rows();
mysql_close($con);

while ($registo = mysql_fetch_array ($resultado)){
$username=$registo["username"];
$password=$registo["password"];
$email=$registo["email"];
$nome=$registo["nome"];
$morada=$registo["morada"];
$newsletter=$registo["newsletter"];
$tlm=$registo["tlm"];
$array = $_SESSION['array'];    
}
$recebenome = $nome;
$recebemail = $mail;
// $recebemsg = $_POST['mensagem'];
$assunto = "Encomenda de Produtos";
$headers = "Content-type:text/html; charset=iso-8859-1";

$para = "mail";

$mensagem = "<h3>De: </h3> ";
$mensagem .= $recebenome ." | " . $recebemail;
$mensagem .= "<h3> Assunto: </h3>";
$mensagem .= $assunto;
$mensagem .= "<h3> Dados do Cliente: </h3>";
$mensagem .= "Nome: ". $nome . "<br>";
$mensagem .= "Morada: " . $morada . "<br>";
$mensagem .= "Contacto: " . $tlm . "<br>";
$mensagem .= "Newsletter: " . $newsletter . "<br>";
$mensagem .= "<h3> Dados do Conta: </h3>";
$mensagem .= "Utilizador: " . $username . "<br>";
$mensagem .= "Email: " . $email . "<br>";
$mensagem .= "<h3> Dados de Encomenda: </h3>";
$mensagem .= "<p>";
$mensagem .= $recebemsg;
$mensagem .= "</p>";


//envia mail para mim
$envia = mail($para,$assunto,$mensagem,$headers);

?>

Mais uma vez obrigado

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
psan7os

não é essa a dificuldade a variável que recebe a mensagem é que vai receber o foreach?

será isto?

$mensagem = "foreach($_SESSION[carrinho] as $id => $qtd){
                             $sql   = 'SELECT * FROM produtos WHERE id= '$id'';
                             $qr    = mysql_query($sql) or die(mysql_error());
                             $ln    = mysql_fetch_assoc($qr);


                             // ESCREVE NA TABELA
        $nome  = $ln[nome];
                             $preco = $ln[preco];
                             $sub   = number_format($ln[preco] * $qtd, 2, ',','.');

                             $total += $ln[preco] * $qtd;

                          echo '<tr>     
                                <td>'.$nome.'</td><br>
                                <td>Quantidade: '.$qtd.'</td><br><br>



                             </tr>
        <tr><td ></td></tr>';
                       }
                          $total = number_format($total, 2, ',', '.');
                          echo '<tr>
                                   <td>Total</td>
                                   <td>'.$total.' €</td>
                             </tr><br>'; ";

Editado por Rui Carlos

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.