2
respostas

$ SESSION

Bom dia. Agradeceria ajuda. Estou tentando fazer com que funcione meu carrinho de compras. Estou utilizando um script que achei em outro forum mas não está funcionando. Essa é a lógica que estou tentando desenvolver, mas não sei onde estou errando: 1) Na pagina escolha iniciei com $Session e enviei para pagina carrinho o ID do produto.

2) na pagina carrinho, recebo o ID via $Session e crio a session 'carrinho'. Busco no BD os dados do produto e faço a exibição.

Acho que é isso que eu tenho que fazer mas da forma como está nada funciona:

<?php session_start(); ?>
<?php error_reporting(E_ALL); ?>
<?php require_once ("head.php") ?>
<?php require_once ("../cadastro/conecta.php") ?>
<?php require_once ("../cadastro/banco-produto.php") ?>
<?php require_once ("../cadastro/banco-categoria.php") ?>
<?php require_once ("../cadastro/banco-marca.php") ?>
<?php require_once ("../cadastro/produto.php") ?>
<?php require_once ("../cadastro/categoria.php") ?>
<?php require_once ("../cadastro/marca.php") ?>
<?php require_once ("../cadastro/subcategoria.php") ?>
<?php require_once ("../cadastro/produtoDAO.php") ?>

<?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]);
                      }
                   }
                }
             }           
          }             
    ?>
<div class="row">
<?php
$id = $_SESSION['carrinho'];
$produto = buscaProduto($conexao, $id); 
?>
                <div class="col-md-8">
                    <h2>Seu Carrinho de Compras</h2>
                </div>

                <div class="col-md-10 col-md-offset-1">
                    <div class="table-responsive">
                    <table class="table table-shopping">
                        <thead>
                            <tr>
                                <th class="text-center"></th>
                                <th >Produto</th>
                                <th class="th-description">Descricao</th>
                                <th class="text-right">Preco</th>
                                <th class="text-right">Quantidade</th>
                                <th class="text-right">Valor</th>
                                <th></th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>
                                    <div class="img-container">
                                   <img src="../cadastro/fotos/<?=$produto->getFoto() 
                                     ?>" width="235px" height="200px" 
                                    </div>
                                </td>
                                <td class="td-name">
                                   <?=$produto->getnome() ?>
                                </td>
                                <td>

                                    <p>
                                   <?=$produto->getDescricao() ?>
                                </td>

                                <td class="td-number">
                                    <small>R&dollar; <?=$produto->getPreco() ?>
                                </td>
                                <td class="td-number">
                                    <small>x</small><?=$produto->getQuantidade() ?>
                                </td>
                                <td class="td-number">
                                    <small>R&dollar;</small><?$total += <?=$produto->getQuantidade() ?> * <?=$produto->getPreco() ?>
                                </td>
                                <td class="td-actions">
                                           <button type="button" rel="tooltip" data-placement="left" title="Remover item" class="btn btn-danger btn-simple btn-icon ">
                                        <i class="fa fa-times"></i>
                                    </button>                                    
                                </td>
                            </tr>

                                <tr>
                                     <td class="td-actions">
                                         <div class="info info-horizontal">
                                                <div class="icon icon-blue icon-sm">
                                                    <h3><i class="fa fa-shopping-cart"></i></h3>

                                                </div>
                                        </div>
                                    </td>

                         <td>


                            <div class="description">

                                <h4> Digite seu CEP: </h4>                                   

                                            <a href="javascript: void(0);">Buscar Cep</a>

                            </div>
                        </td>

                        <td>
                        <div class="form-group has-success">
        <input type="number" value="numerocep" class="form-control" placeholder="00000-000"/>

    </div>
    </td>

                                <td class="td-number">
                                <a href="calculando-frete.php" button type="submit" class="btn btn-primary btn-fill">                               
                                Consultar</button></a>
                                </td>
                                <td class="td-number">
                                    <p><?$linhas['valor']?></p>
                                </td>

                            <td class="td-number">
                                    <small>R&dollar;</small><?$detalhes['frete']?>
                                </td>    
       </div>

     </div>
            </td>
            </tr>

                            <tr>
                                <td colspan="2"></td>
                                <td></td>
                                <td class="td-total">
                                   Total
                                </td>
                                <td class="td-price">
                                    <small>R&dollar;</small><?$total += $detalhes['itens'] * $detalhes['preco'] + $detalhes['frete'];?>
                                </td>
                                <td> <button type="submit" class="btn btn-info btn-fill btn-l" ahref="login.php">Finalize seu Pedido <i class="fa fa-chevron-right"></i>
                             </button></td>

                                <td></td>
                            </tr>
2 respostas

Oi Sergio, esse tipo de dúvida geralmente dura mais no fórum mesmo. É um código que não foi visto em nenhum curso e está com um problema que você ainda não conseguiu detalhar direito. Qual o erro que acontece?

Oi Alberto, obrigado pelo retorno. O script que eu consegui na internet mostra como fazer a session no carrinho de compras. Funciona. Mas eu aprendi no FP-73 e estou desenvolvendo Orientado a Objetos, (fazer busca e retornar do BD e exibir o resultado e se você observar o script não é O.O. e não consigo adaptá-lo)desta forma, não estou conseguindo montar a $Session para o carrinho de compras. Ou seja na hora de buscar o id no BD eu utilizo o buscaProduto, e consigo exibir os dados do produto ref. id, ok, mas se eu volto e escolho outro produto ele não mantém o produto anterior, ao contrário, mostra o novo id e não mantém a session anterior. Assim não consigo montar o carrinho. Estou quebrando a cabeça a uma semana e não consigo sair do lugar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software