Estou com um problema que esta me intrigando.
É o seguinte:
Tenho o seguinte form:
<FORM METHOD="POST" ACTION="CarrinhoFinal.php?acao=envia_dados" name="FORM_ENVIA_CEP"> <TABLE width="400" align="center"> <TR> <TD>Informe o CEP para entrega do pedido:</TD> <TD><INPUT TYPE="text" NAME="TCEP"></TD> </TR> <TR> <TD>FORMA DE ENVIO:</TD> <TD> <select name="TENVIO"> <option value="FRETE_SEDEX" selected>SEDEX</option> <option value="FRETE_PAC">PAC</option> </select> </TD> </TR> <TR align="center"> <TD colspan="2"><input type="submit" value="Enviar Dados" name="envio_cep_frete" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)" onClick="CriticaFormulario2()"></TD> </TR> </TABLE>
Esse form envia dois campos para o action dele:
1) TCEP --> TEXTBOX
2) TENVIO --> SELECT
Acontece que os valores da textbox e do select chegam normal, da até pra imprimir.
O problema é que não consigo imprimir a variavel $TENVIO dentro de uma funçao.
Deixa explicar. Veja:
<? if ($acao=="envia_dados") { include ("frete.php"); $print $TENVIO; // $result = calcula_frete(FRETE_SEDEX, $TCEP, '36855000', '2'); $result = calcula_frete($TENVIO, $TCEP, '36855000', '2'); $print $TENVIO; ?>
Viram?
Imprime antes e depois da função (para teste tá?)
Mas dentro da funçao não vai de jeito nenhum.
Onde estará o erro?
Segue a função:
<?php define('FRETE_PAC', '41106'); define('FRETE_SEDEX', '40010'); define('FRETE_SEDEX_10', '40215'); define('FRETE_SEDEX_HOJE', '40290'); define('FRETE_E_SEDEX', '81019'); define('FRETE_MALOTE', '44105'); function calcula_frete ($servico, $origem, $destino, $peso) { if (!$sock = fsockopen('www.correios.com.br', 80, $errornro, $error, 60)) { throw new Exception($error, $errornro); } $msg = "GET /encomendas/precos/calculo.cfm?" ."Servico={$servico}&cepOrigem={$origem}&cepDestino={$destino}" ."&peso={$peso}&resposta=localhost HTTP/1.1\n" ."Host: www.correios.com.br\nConnection: Close\n\n"; fwrite($sock, $msg); while (!feof($sock)) { $line = fgets($sock); if (!preg_match('/^Location: \w+\?(.*)$/i',$line, $match)) continue; $data = array(); foreach(split('&', $match[1]) as $item) { $t = split('=', $item); $data[$t[0]] = trim($t[1]); } break; } $data['Servico'] = urldecode($data['Servico']); $data['erro'] = urldecode($data['erro']); return $data; } ?>Estou tentando imprimir para teste assim:
<? if ($acao=="envia_dados") { include ("frete.php"); $print $TENVIO; /imprimo aqui // $result = calcula_frete(FRETE_SEDEX, $TCEP, '36855000', '2'); $result = calcula_frete($TENVIO, $TCEP, '36855000', '2'); $print $TENVIO; /imprimo aqui ?>
Viu o $print $TENVIO; /imprimo aqui
Pode colocar tambem $_POST['TENVIO']; que esta dando na mesma.
[/quote]
Obrigado a quem puder ajudar!