Jump to content
Fórum Script Brasil
  • 0

[Ajuda] Problemas com Session


khayro

Question

é o seguinte, to criando um carrinho de compras, e ele já tá quase no ponto, só falta enviar os dados que estiverem no carrinho. mas não consigo ver o que tem no carrinho e por numa forma pra enviar junto com os dados.

na pagina dos dados, eu escrevo :

print_r ($_SESSION['carrinho'])
e aparece o que tem no carrinho, só que assim. Array ( [0] => 19 [1] => 2 [2] => Array ( [id] => 18950 [nome] => XYLESTESIN 5% PESADA INJ. C/50 2ML [preço] => [qtde] => 1 [descricao] => ) ) e eu queria enviar por email de uma forma tipo Nome = XYLESTESIN 5% PESADA INJ. C/50 2ML Id = 18950 Qtde = 1 e eu queria apagar a parte do Array ( [0] => 19 [1] => 2 [2] => Array e enviar por email. alguém sabe como ? aqui meu carrinho.php
<?php
$area = isset($_GET['area']) ? $_GET['area'] : NULL;
$acao = isset($_GET['acao']) ? $_GET['acao'] : NULL;
$objCar = new Carrinho;

if ($area == "carrinho")
{

    if ($acao == "adicionar")
    {
        $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
        $objCar->AdicionarProduto ($id);

    }

    if ($acao == "remover")
    {
        $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
        $objCar->RemoverProduto ($id);
    }

    if ($acao == "alt_qtde")
    {
        $id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
        $n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1;
        $objCar->AlterarQuantidade($id, $n_qtde);
    }



    echo "
    <h2>Carrinho de Compras</h2>
    <table width=\"700\" cellpadding=\"2\" cellspacing=\"0\">
      <tr>
        <td width=\"300\" style=\"text-align:center\">Nome</td>
        <td width=\"120\" style=\"text-align:center\">Preço<br />Unitário</td>
        <td width=\"100\" style=\"text-align:center\">Qunatidade</td>
        <td width=\"120\" style=\"text-align:center\">Subtotal deste<br />Produto</td>
        <td width=\"60\" style=\"text-align:center;\">Excluir<br />Produto</td>
      </tr>
    ";


    $carrinho = isset ($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array();


    if (count ($carrinho) == 0)
    {
        echo "
        <tr>
          <td colspan=\"5\" style=\"text-align:center\"><strong><em>
            Não há produtos em seu carrinho de compas.</em></strong>
         </td>
        </tr>
        </table>
        <p><a href=\"?area=produtos\">Ver lista de produtos</a></p>
        ";
    }
    else
    {
           for ($a = 0; $a < count($carrinho); $a++)
        {
            $id = $carrinho[$a]['id'];
            $nome = htmlentities ($carrinho[$a]['nome']);
            $preço = number_format ($carrinho[$a]['preço'], 2, ",", "");
            $desc = htmlentities ($carrinho[$a]['descricao']);
            $qtde = $carrinho[$a]['qtde'];
            $subtotal = number_format(($carrinho[$a]['preço'] * $qtde), 2, ',', '');


            echo "
            <tr>
              <td style=\"border-left: dashed 1px black;\" class=\"celulas\">".$nome."</td>
              <td class=\"celulas\">R$ ".$preço."</td>
              <td class=\"celulas\">
              <form action=\"?area=carrinho&acao=alt_qtde&id=".$carrinho[$a]['id']."\"method=\"post\">
              <input type=\"text\" name=\"qtde_".$id."\" value=\"".$qtde."\" style=\"width: 30px;height: 15px;font-size:13px;text-align:center;border:inset 1px black;\" maxlength=\"2\" /><br />
              <input type=\"submit\" value=\"Alterar\" style=\"width: 80px;height: 20px;font-size:13px;margin:0;padding:0;cursor:pointer;background:#ccc;border: inset 1px black\" />
              </form>
              </td>
              <td class=\"celulas\">R$ ". $subtotal . "</td>
              <td class=\"celulas\"><a href=\"?area=carrinho&acao=remover&id=" .$id. "\" onclick=\"return ConfirmarExclusaoProduto()\">Excluir</a></td>
            </tr>
            ";
        }// fecha for

           echo "
        <tr>
          <td style=\"text-align:right\"><strong style=\"font-size:18px\">Total:</strong><br />Sem o valor do frete</td>
          <td style=\"text-align:center\"><strong style=\"font-size:18px\">".$_SESSION['total']."</strong></td>
          <td colspan=\"2\"> </td>
        </tr>
        </table>
        <p><a href=\"?area=produtos\">Continuar Comprando</a> | <a href=\"?area=finalizar\">Finalizar Pedido</a></p>
        ";
    }// fecha else
}
?>
e meu finalizar.php
<?php
echo "
";
?>
<form method="post" action="mailto: khayro@gmail.com" enctype="text/plain"
name="guiaform">
<?
?>
  <table width="50%" border="0" align="center">
<TR>
<td width="97" align="right">Nome:</td>
<Td width="295" colspan="3"><input type="text" name="Nome" size="32"
maxlength="50" /></Td>
</TR>
<TR>
<td width="97" align="right">Fone:</td>
<Td width="295" colspan="3"><input type="text" name="Fone" size="19"
maxlength="19" /></Td>
</TR>
<TR>
<td width="97" align="right">E-mail:</td>
<Td width="295" colspan="3"><input type="text" name="e_mail" size="32"
maxlength="50" /></Td>
</TR>
<Tr>
<Td width="97" align="right" valign="top">Comentário:</Td>
<td width="295" colspan="3" valign="top"><textarea name="Comentario"
rows="5" cols="50"></textarea></td>
</Tr></table>
  <table align="center" width="50%">
<TR><Td align="right"><input type="submit" value="Enviar" /></Td>
<TD><input type="reset" value="Deletar" /></TD></TR></table>
</form>
<?php
print_r ($_SESSION['carrinho'])
?>

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Não tem porque apagar, simplesmente, no email, não coloque tais elementos do array.

Mas se quiser realmente 'tirá-los' do array, use a função unset();

unset($_SESSION['carrinho'][0]);
unset($_SESSION['carrinho'][1]);

Mas tem de ver se esses elementos não são importantes, se eles são necessários após o envio deste e-mail.

Link to comment
Share on other sites

  • 0

também não me importo tanto com o envio do

Array ( [0] => 19 [1] => 2 [2] => Array

junto no email, mas o problema é que eu queria saber, como faço pra enviar a linha toda

Array ( [0] => 19 [1] => 2 [2] => Array ( [id] => 18950 [nome] => XYLESTESIN 5% PESADA INJ. C/50 2ML [preço] => [qtde] => 1 [descricao] => ) )

por email, pra alguém .. porque só vai o que tem nos formulários, mas o que é mais importante, é o nome,id e quantidade do produto .

Link to comment
Share on other sites

  • 0

Bom, faça o seguinte. Para cada iteração sobre o array, verifique se existe outro array contido, caso exista, faça impressão dele.

<?php
$arr = array(
    19,
    2,
    array(
        'id' => 18950 ,
        'nome' => 'XYLESTESIN 5% PESADA INJ. C/50 2ML',
        'preço' =>     '','qtde' => 1 ,'descricao' => ''                 
    ),
    array(
        'id' => 18951 ,
        'nome' => 'teste',
        'preço' =>     '50.00','qtde' => 3 ,'descricao' => 'teste'                 
    )
);

foreach($arr as $array)   {

    if(is_array($array))   {

        print_r($array);
    }
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...