ERRO AO CALCULAR FRETE

Enviada por Matheus Viotto 
Matheus Viotto
ERRO AO CALCULAR FRETE
04 de September de 2017 às 06:25PM
Boa noite, bom dia, boa tarde!!

Estou desenvolvendo uma loja virtual em PHP, e na parte do calculo do frete, o codigo esta correto, porém na tela não me aparece nada...

código do carrinho:
<?php
if(isset($parametros[1]) && $parametros[1] == 'add' && isset($parametros[2]) && $parametros[2] != '0'){
$id = (int)$parametros[2];
$carrinho->verificaAdiciona($id);
}
if(isset($_SESSION['ibicor_produto'][0])){unset($_SESSION['ibicor_produto'][0]);}
if(count($_SESSION['ibicor_produto']) == 0){unset($_SESSION['valor_frete']);}

if(isset($parametros[1]) && $parametros[1] == 'del' && isset($parametros[2])){
$idDel = (int)$parametros[2];
if($carrinho->deletarProduto($idDel)){
echo '<script>alert("Produto deletado do carrinho.");location.href="'.PATH.'/carrinho"</script>';
}else{
echo '<script>alert("Erro ao deletar produto.");location.href="'.PATH.'/carrinho"</script>';
}
}

if(isset($_POST['atualizar'])){
$produto = $_POST['prod'];
if($carrinho->atualizarQuantidades($produto)){
echo '<script>alert("Quantidade alterada com sucesso.");location.href="'.PATH.'/carrinho"</script>';
}else{
echo '<script>alert("Erro ao alterar quantidade.");location.href="'.PATH.'/carrinho"</script>';
}
}
//frete
if(isset($_POST['acao']) && $_POST['acao'] == 'calcular'):
$frete = $_POST['frete'];
$cep = strip_tags(filter_input(INPUT_POST, 'cep'));
switch($frete){
case 'carta';
$valor = '6,00';
$_SESSION['valor_frete'] = '6,00';
break;

case 'pac';
$valor = '41106';
$peso_total = 0;
foreach($_SESSION['ibicor_produto'] as $id => $qtd){
$selecionar_produto = BD::conn()->prepare("SELECT peso FROM loja_produtos WHERE id = ?");
$selecionar_produto->execute(array($id));
$fetch_produto = $selecionar_produto->fetchObject();
$peso_total += $fetch_produto->peso;
}
$_SESSION['valor_frete'] = $carrinho->calculaFrete($valor, 14940000, $cep, $peso_total);
break;

case 'sedex';
$valor = '40010';
$peso_total = 0;
foreach($_SESSION['ibicor_produto'] as $id => $qtd){
$selecionar_produto = BD::conn()->prepare("SELECT peso FROM loja_produtos WHERE id = ?");
$selecionar_produto->execute(array($id));
$fetch_produto = $selecionar_produto->fetchObject();
$peso_total += $fetch_produto->peso;
}
$_SESSION['valor_frete'] = $carrinho->calculaFrete($valor, 14940000, $cep, $peso_total);
break;
}
endif;
?>
<div id="carrinho-page">
<h1 class="title-page"><img src="<?php echo PATH;?>/images/loja_cart_title.png" border="0" alt=""/>Minhas Compras</h1>
<form action="<?php echo PATH.'/carrinho/atualizar';?>" method="post" enctype="multipart/form-data">
<table border="1" cellpadding="0" cellspacing="0" class="carrinho">
<thead>
<tr>
<th>Produto</th>
<th>Quantidade</th>
<th>Valor Unitário</th>
<th>Sub Total</th>
<th>Remover</th>
</tr>
</thead>
<tbody>
<?php
if($carrinho->qtdProdutos() == 0){
echo '<tr><td colspan="5">Não existem produtos em seu carrinho!</td></tr>';
}else{
$total = 0;
foreach($_SESSION['ibicor_produto'] as $id => $quantidade){
$id = (int)$id;
$selecao = BD::conn()->prepare("SELECT * FROM loja_produtos WHERE id = ?");
$selecao->execute(array($id));
$fetchProduto = $selecao->fetchObject();
?>
<tr>
<td><img src="<?php echo PATH;?>/produtos/<?php echo $fetchProduto->img_padrao;?>" width="100" title="<?php echo $fetchProduto->titulo;?>" id="prodimg" alt="" border="0" /><span><?php echo $fetchProduto->titulo;?></span></td>
<td><input type="text" name="prod[<?php echo $id;?>]" value="<?php echo $quantidade;?>" size="3" /></td>
<td class="unitario">R$ <?php echo number_format($fetchProduto->valor_atual,2,',','.');?></td>
<td class="sub">R$ <?php echo number_format($fetchProduto->valor_atual * $quantidade,2,',','.');?></td>

<td><a href="<?php echo PATH.'/carrinho/del/'.$id;?>" title="Deletar Produto"><img src="<?php echo PATH;?>/images/del.png" border="0" alt=""/></a></td>
</tr>
<?php $total += $fetchProduto->valor_atual * $quantidade;}}?>

<tr>
<td colspan="4" align="right" class="last">Total:</td>
<td class="total last">R$ <?php echo (isset($_SESSION['valor_frete'])) ? number_format($total+$_SESSION['valor_frete'],2,',','.') : number_format($total,2,',','.');?></td>
</tr>
</tbody>
</table>
<input type="submit" value="Atualizar Quantidade" id="update" name="atualizar" />
</form>
<div id="opcoes">
<div id="outros">
<span id="resultado-frete">Valor do Frete R$ <?php echo ($_SESSION['valor_frete'] == '6,00') ? $final = number_format($_SESSION['valor_frete'],2,',','.') : $final = $_SESSION['valor_frete'];?></span>
<a href="#" id="finalizar">Finalizar Compra</a>
<a href="#" id="continuar">Continuar Comprando</a>
</div>
<div class="calcular">
<form action="<?php echo PATH.'/carrinho';?>" method="post" enctype="multipart/form-data">
<input type="submit" value="Calcular Frete" />
<label>
<span>Escolha a forma de envio</span>
<select name="frete">
<option value="">Selecione</option>
<option value="pac">PAC</option>
<option value="sedex">SEDEX</option>
</select>
</label>
<label>
<span>Informe seu CEP</span>
<input type="text" name="cep" />
</label>
<input type="hidden" name="acao" value="calcular" />
</form>
</div>
</div><!-- opceos -->
</div><!---carrinho-page -->



código do calculo do frete:
public function calculaFrete($cod_servico, $cep_origem, $cep_destino, $peso, $altura='2', $largura='11', $comprimento='16', $valor_declarado='0.50')
{
# Código dos Serviços dos Correios
# 41106 PAC sem contrato
# 40010 SEDEX sem contrato
# 40045 SEDEX a Cobrar, sem contrato
# 40215 SEDEX 10, sem contrato


$correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?"."nCdEmpresa=&sDsSenha=&sCepOrigem=".$cep_origem."&sCepDestino=".$cep_destino."&nVlPeso=".$peso."&nCdFormato=1&nVlComprimento=".$comprimento."&nVlAltura=".$altura."&nVlLargura=".$largura."&sCdMaoPropria=n"."&nVlValorDeclarado=".$valor_declarado."&sCdAvisoRecebimento=n"."&nCdServico=".$cod_servico."&nVlDiametro=0&StrRetorno=xml";
if($xml->cServico->Erro == '0')
return $xml->cServico->Valor;
else
return false;
}
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.