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!










