Ir para conteúdo
Fórum Script Brasil

Carlos Rocha

Membros
  • Total de itens

    1.300
  • Registro em

  • Última visita

Tudo que Carlos Rocha postou

  1. Ola pessoal. Tenho o variavel abaixo: $prazo="O prazo de entrega será de $PrazoEntrega[0] dia(s) úteis"; assim ela vem o resultado 2, certinho.; Acontece, que preciso somar 5 a esse 2 para dar 7 e não estou conseguindo. Tentei assim, mas alterou o layout todo da minha pagina: $prazo="O prazo de entrega será de " . $PrazoEntrega[0] + 5 . " dia(s) úteis"; Como devo fazer?
  2. Ola pessoal. Consegui assim: <?php global $PHP_SELF; @$pagina = $_REQUEST['pagina']; @$exibe = $_REQUEST['exibe']; if ($pagina == "") { $pagina = "1"; } if ($exibe == "") { $exibe = "30"; } $arquivo_linhas = file ("../../vendas/BoletoWebCaixa/log/BoletoWebCaixa.log"); $conta_linhas = count($arquivo_linhas); $total_paginas = ceil(($conta_linhas/$exibe)); print " <table width='780' border='1' align='center'> <tr> <td colspan='6' align='center'>Boletos Impressos</td> </tr> <tr> <td align='center'>Vencimento</td> <td align='center'>Cliente</td> <td align='center'>Valor (R$)</td> <td align='center'>Nosso N&uacute;mero</td> <td align='center'>Cidade</td> <td align='center'>Cep</td> </tr> "; $linha_chegar = (($pagina-1)*$exibe); for ($linha = 0; $linha != $linha_chegar; $linha++) { list ($num_linha, $conteudo_linha) = each ($arquivo_linhas); } $ultima_linha = ($linha_chegar + $exibe); if ($ultima_linha > $conta_linhas) { $ultima_linha = $conta_linhas; } $parar = "não"; while ($parar == "não") { list ($numlinha, $conteudolinha) = each ($arquivo_linhas); $registro = explode('&', $conteudolinha); print" <tr> <td align='center'>$registro[5]</td> <td align='left'>$registro[7]</td> <td align='center'>$registro[2]</td> <td align='center'>$registro[0]</td> <td align='left'>$registro[9]</td> <td align='center'>$registro[11]</td> </tr> "; if (($numlinha + 1) == $ultima_linha) { $parar = "sim"; } } echo "<BR>"; $navegacao = 1; while ($navegacao <= $total_paginas) { if ($navegacao != $pagina) { echo ' <a href="'.$PHP_SELF.'?pagina='.$navegacao.'">'.$navegacao.'</a> '; } else { echo ' '.$navegacao.' '; } $navegacao++; } print "</table>"; ?> Valeu!
  3. Pessoal, Estou lendo essa arquivo de log que tem duas linhas. (para teste) A leitura esta sendo feita (exibida) correta. Mas, tenho duas duvidas: 1) Ela, mesmo o arquivo estando em branco, da 1 registro. 2) Preciso da ajuda de vocês para paginart os resultados.; segue o código até onde eu consegui chegar. <? $ponteiro = fopen ("../../vendas/BoletoWebCaixa/log/BoletoWebCaixa.log", "r"); $num_linhas = 0; print " <table width='780' border='1'> <tr> <td colspan='6' align='center'>Boletos Impressos</td> </tr> <tr> <td align='center'>Vencimento</td> <td align='center'>Cliente</td> <td align='center'>Valor (R$)</td> <td align='center'>Nosso N&uacute;mero</td> <td align='center'>Cidade</td> <td align='center'>Cep</td> </tr> "; while (!feof ($ponteiro)) { $linha = fgets($ponteiro, 10000); $registro = explode('&', $linha); $num_linhas++; if ($num_linhas==0 ){ print "<tr><td colspan=6>Não há registros</td></tr>";} else { print" <tr> <td align='center'>$registro[5]</td> <td align='left'>$registro[7]</td> <td align='center'>$registro[2]</td> <td align='center'>$registro[0]</td> <td align='left'>$registro[9]</td> <td align='center'>$registro[11]</td> </tr> "; } //fim do if ($nun_linhas(... }//fim do while print "</table>"; ?>
  4. Ola, resolvi assim: <? $ponteiro = fopen ("../../vendas/BoletoWebCaixa/log/BoletoWebCaixa.log", "r"); while (!feof ($ponteiro)) { $linha = fgets($ponteiro, 10000); $registro = explode('&', $linha); $i = ??? //quantas vezes o & repete na string $linha. Com faz isso? for ($i=0;$i<12;$i++) { echo $registro[$i] . "<br>"; } } fclose ($ponteiro); ?> agora, gostaria de saber quantas vezes, na string $linha, o caracter & (que estou usando para separar um registro de outro em cada linha) se repete. A ideia é em lugar de $i, fazer $i ser a contagem de quantos & tem.
  5. O arqruivo que gera os logs é este. Fiz uma mnodificação nele. Na parte que grava os dados no .log, o autor usa a funçao fillwithcharleft e enche de espaços tornando dificil tratar os dados gravados assim. o que eu fiz: Tirei essa função e entre um registro e outro puz um & para poder usar usar substring com while mas não sei se é a melhor opção.; <? /** * Manipula rotinas para salvar as mensagens em arquivos de log. * @author wlung * @since 18/06/2003 * @version 1.0 * (C) Opus Comunicação de Dados, 2003. */ /** * Funcao que cria diretorios de forma recursiva */ function mkdirs($strPath, $mode) { if (is_dir($strPath)) return true; $pStrPath = dirname($strPath); if (!mkdirs($pStrPath, $mode)) return false; return mkdir($strPath, $mode); } /** * funcao que append o a mensagem de log para arquivo de Log */ function printLog() { global $nosso_num,$num_doc,$valor,$juros_dia,$multa,$vencimento,$todayDate,$sNome,$sEndereco, $sCidade,$sEstado,$sCEP,$msg_compensacao,$msg_sacado,$log_path,$LOG_FILE_DEFAULT; //É assim: //se chegou ate aqui, quer dizer que foi sucesso. Registrar no arquivo de LOG /* $logMessage = $nosso_num . $num_doc . fillWithCharLeft($valor,' ', 13) . fillWithCharLeft($juros_dia."%",' ',10) . fillWithCharLeft($multa."%",' ',10) . $vencimento . $todayDate . fillWithCharRight($sNome,' ',40) . fillWithCharRight($sEndereco,' ',40) . fillWithCharRight($sCidade,' ',25) . $sEstado . str_replace ("-", "", $sCEP); */ //Mas, tentando assim $logMessage = $nosso_num . "&". $num_doc . "&". $valor . "&". $juros_dia . "&". $multa . "&". $vencimento . "&". $todayDate . "&". $sNome . "&". $sEndereco . "&". $sCidade . "&". $sEstado . "&". str_replace ("-", "", $sCEP); for ($i=0; $i<sizeof($msg_compensacao); $i++) $logMessage .= fillWithCharRight($msg_compensacao[$i]," ",60); for ($i=0; $i<sizeof($msg_sacado); $i++) $logMessage .= fillWithCharRight($msg_sacado[$i]," ",70); $fp = fopen ( $log_path.$LOG_FILE_DEFAULT, "a" ); if (!$fp) error( "Erro: Não foi possível abrir arquivo de log!" ); flock ($fp, 2); // lock exclusive fputs ($fp, $logMessage."\n"); flock ($fp, 3); // unlock fclose($fp); } //criar diretorio de log if (isset($log_path) && trim($log_path)!="") { if (!mkdirs($log_path,0700)) die ("Erro: Não foi possível criar diretório de log (".$log_path.")"); } else { if (!mkdirs($LOG_PATH_DEFAULT,0700)) die ("Erro: Não foi possível criar diretório de log (".$LOG_PATH_DEFAULT.")"); $log_path=$LOG_PATH_DEFAULT; } //concatenar "/" no final do nome de diretorio if ($log_path[strlen($log_path)-1]!="/") $log_path .= "/"; ?> E essa tabela que me referi, não é tabela de base dados e sim um tabela html para organizar a exibição dos regitros
  6. Ola pessoal, Implementei um gerador de boletos da Caixa Economica Federal por um pacote que ela mandou pra min por email. Tudo esta funcionando correto. Os boletos estão sendo gerados corretamente. No pacote, a cada boleto gerado, é gravado u log com as informações do boleto. Eu gostaria de saber com fazer para ler esse log de forma a criar uma tabela e informar os dados principais de cada boleto para o meu cliente. No aqruivo de log, BoletoWebCaixa.log, cada linha é gravado nesse formato (exemplo pois estou terminado a implementação): 00000000000007400000000074 74,90 0,02% 2,5%23/04/201010/04/2010Carlos Rocha Rua çã, Nº: 55, Bairro: São Muriaé MG36880000 Este título pode ser pago até o vencimento em qualquer agência Caixa Econômica Federal ou bancos participantes do sistema integrado de compensação. Após o vencimento, o título só poderá ser pago nas agências da CAIXA, e casas lotéricas. O pagamento efetuado com cheque só será definitivamente reconhecido após a liquidação do mesmo. Grato a quem puder ajudar!
  7. Carlos Rocha

    Problemas com xml

    No caso de uma url http://www.url.com.br/parametro=um&teste=2 Vendo este link eu sei que ele tem 2 parametros: parametro e teste, cujos valores são respectivamente um e 2 eu quero saber como faço para descobrir se existe (ou não) um parametro chamado teste2 nessa url
  8. Carlos Rocha

    Problemas com xml

    Ok Então como faço para manipular esses dados que chegam $file = file($url); $retorna = $file[0]; $arrLinhas = explode("&", $retorna); $i = 0; foreach ($arrLinhas AS $line) { list($variavel, $valor) = explode('=', ($line)); $variavel = trim($variavel); $variave2 = $valor; $i ++; } Isso retorna duas variaveis Retorna CODRET e MSGRET quero escrever assim: O código é: $CODRET. A mensagem é: $MSGRET.
  9. Carlos Rocha

    Problemas com xml

    Não, não! Aquele code lá deveria ser para gerar dois blocos de códigos na verdade, o código todo agora esta assim: <? //Abrindo conexao com o banco de dados $MySQL = new TMySQL(); $MySQL->connect($host, $db, $user, $pass); $DATA = $_GET['DATA'];//8 Data da transação $NUMPEDIDO = $_GET['NUMPEDIDO']; //16 Número do Pedido $NR_CARTAO = $_GET['NR_CARTAO']; //16 Número do Cartão mascarado $ORIGEM_BIN = $_GET['ORIGEM_BIN']; //3 Código de Nacionalidade do Emissor $NUMAUTOR = $_GET['NUMAUTOR']; //6 Número de Autorização $NUMCV = $_GET['NUMCV']; //9 Número do Comprovante de Venda (NSU) $NUMAUTENT = $_GET['NUMAUTENT']; //27 Número de Autenticação $NUMSQN = $_GET['NUMSQN']; //12 Número seqüencial único $NUMPRG = $_GET['NUMPRG']; //1 Número correspondente ao programa de captura utilizado ///CASO DE ERROS $CODRET = $_GET['CODRET']; //2 Código de erro $MSGRET = $_GET['MSGRET']; //200 Mensagem de erro if ( !isset($CODRET) ) { $consulta=$MySQL->query("select PRECO_TOTAL from pedidos_cliente where ID_PEDIDO_CLIENTE=$NUMPEDIDO"); list($PRECO_TOTAL) = mysql_fetch_array($consulta); $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?" ."DATA=$DATA&" ."TRANSACAO=203&" ."TRANSORIG=04&" ."PARCELAS=00&" ."FILIACAO=30355141&" ."DISTRIBUIDOR=&" ."TOTAL=$PRECO_TOTAL&" ."NUMPEDIDO=$NUMPEDIDO&" ."NUMAUTOR=$NUMAUTOR&" ."NUMCV=$NUMCV&" ."NUMSQN=$NUMSQN&" ."ORIGEM_BIN=$ORIGEM_BIN&" ."NUMPRG=$NUMPRG"; //AQUI já FOI ENVIADA A SEGUNDA FASE3 E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO. //A função file irá enviar a url para a Redecard sem redirecionar(sair da NatureLavie) e, ao mesdo tempo, receber o rerorno da Redecdard $file = file_get_contents($url); $file = parse_str($file); print "<table align='center'"; print "<tr><td align='center'>"; print "<br>"; print "Resultado da transaçao pela Redecard:"; print "<br>"; print "$MSGRET"; print "</td></tr>"; print "</table>"; /* print "<table align='center'"; print "<tr><td align='center'>"; $file = file($url); $retorna = $file[0]; $arrLinhas = explode("&", $retorna); $i = 0; foreach ($arrLinhas AS $line) { list($variavel, $valor) = explode('=', ($line)); $variavel = trim($variavel); // $$variavel = $valor; $i ++; print "<br>"; print $valor; } print "</td></tr>"; print "</table>"; */ $status = $_REQUEST['CODRET']; if ($status > 1) { $autent = $_REQUEST['MSGRET']; } else { $URLCupom = "https://ecommerce.redecard.com.br/pos_virtual/cupom.asp?" ."DATA=$_GET[DATA]&" ."TRANSACAO=201&" ."NUMAUTOR=$_GET[NUMAUTOR]&" ."NUMCV=$_GET[NUMCV]&" ."LANGUAGE=1"; ?> <script LANGUAGE=javascript> <!-- vpos=window.open('<? echo $URLCupom; ?>','vpos','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=280,height=440'); //--> </SCRIPT> <? } } else if ( $CODRET==50 or $CODRET==52 or $CODRET==54 or $CODRET==55 or $CODRET==57 or $CODRET==59 or $CODRET==61 or $CODRET==62 or $CODRET==64 or $CODRET==66 or $CODRET==67 or $CODRET==68 or $CODRET==70 or $CODRET==71 or $CODRET==73 or $CODRET==75 or $CODRET==78 or $CODRET==79 or $CODRET==80 or $CODRET==82 or $CODRET==83 or $CODRET==84 or $CODRET==85 or $CODRET==87 or $CODRET==89 or $CODRET==90 or $CODRET==91 or $CODRET==93 or $CODRET==94 or $CODRET==95 or $CODRET==97 or $CODRET==99 ) { print $MSGRET; exit; } else if ( $CODRET==51 or $CODRET==92 or $CODRET==98 ) { print $MSGRET; exit; } else if ( $CODRET==53 ) { print $MSGRET; exit; } else if ( $CODRET==76 or $CODRET==86 ) { print $MSGRET; exit; } else if ( $CODRET==58 or $CODRET==63 or $CODRET==65 or $CODRET==69 or $CODRET==72 or $CODRET==77 or $CODRET==96 ) { print $MSGRET; exit; } else if ( $CODRET==56 or $CODRET==60 ) { print $MSGRET; exit; } else if ( $CODRET==74 ) { print $MSGRET; exit; } else if ( $CODRET==81 ) { print $MSGRET; exit; } ?> E, um outro problema que estou enfrentando agora é: Não estou usando kit nenhum para cobrança de cartões com a RedeCard. Apenas o form dos cartões e este arquivo retorno_catao.php. só isso. Estou conferindo la no painel da redecartd e as compras estão sendo processadas certinho. Mas, apósa validação do cartão a pagina da redecard fica toda branca e, através de target=blank,. abre a pagina retorno_catao.php Na verdade, não tenhp a minima das mínimas ideias de como usar (ou, pior ainda, criar) um webservioe (como diz no manual). Se puder ajudar fico agradecido. E a questão do AVS? É pago? Obrigado.
  10. Carlos Rocha

    Problemas com xml

    Pois é mas ai que morre o problema. Onde por essa tag <?
  11. Ola pessoal. To precisando de uma luz: Seguinte: Assim como no caso dos correios qe se usa simple_xml_load para receber por xml os valores das tarifas de sedex e pac, resolvi tentar tambem com o site da redecard. Fiz o seguinte código: $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?" ."DATA=$DATA&" ."TRANSACAO=203&" ."TRANSORIG=04&" ."PARCELAS=00&" ."FILIACAO=30355141&" ."DISTRIBUIDOR=&" ."TOTAL=$PRECO_TOTAL&" ."NUMPEDIDO=$NUMPEDIDO&" ."NUMAUTOR=$NUMAUTOR&" ."NUMCV=$NUMCV&" ."NUMSQN=$NUMSQN&" ."ORIGEM_BIN=$ORIGEM_BIN&" ."NUMPRG=$NUMPRG"; //AQUI já FOI ENVIADA A SEGUNDA FASE3 E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO. //A função file irá enviar a url para a Redecard sem redirecionar(sair da NatureLavie) e, ao mesdo tempo, receber o rerorno da Redecdard [code] $file = simplexml_load_file($url); //linha 41 $CODRET = $file->xpath('CODRET'); $MSGRET = $file->xpath('MSGRET'); print "$CODRET"; print "<br>"; print "$MSGRET"; E esta me rertornando o seguinte erro: Warning: simplexml_load_file() [function.simplexml-load-file]: http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?DATA=20100405&TRANSACAO=203&TRANSORIG=04&PARCELAS=00&FILIACAO=30355141&DISTRIBUIDOR=&TOTAL=71.3&NUMPEDIDO=27&NUMAUTOR=R71008&NUMCV=995688328&NUMSQN=995688328&ORIGEM_BIN=BRA&NUMPRG=0:1: parser error : Start tag expected, '<' not found in /home/nature/public_html/novo/retorno_cartao_conteudo.php on line 41 Warning: simplexml_load_file() [function.simplexml-load-file]: CODRET=4&MSGRET=TRANSACAO ESTORNADA in /home/nature/public_html/novo/retorno_cartao_conteudo.php on line 41 Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/nature/public_html/novo/retorno_cartao_conteudo.php on line 41 Fatal error: Call to a member function xpath() on a non-object in /home/nature/public_html/novo/retorno_cartao_conteudo.php on line 42 O que pode estar errado?
  12. Good, Nobody, I get this: <? header('Content-Type: text/html; charset=utf-8'); include ("TMySQL.php"); //Abrindo conexao com o banco de dados $MySQL = new TMySQL(); $MySQL->connect($host, $db, $user, $pass); $DATA = $_GET['DATA'];//8 Data da transação $NUMPEDIDO = $_GET['NUMPEDIDO']; //16 Número do Pedido $NR_CARTAO = $_GET['NR_CARTAO']; //16 Número do Cartão mascarado $ORIGEM_BIN = $_GET['ORIGEM_BIN']; //3 Código de Nacionalidade do Emissor $NUMAUTOR = $_GET['NUMAUTOR']; //6 Número de Autorização $NUMCV = $_GET['NUMCV']; //9 Número do Comprovante de Venda (NSU) $NUMAUTENT = $_GET['NUMAUTENT']; //27 Número de Autenticação $NUMSQN = $_GET['NUMSQN']; //12 Número seqüencial único $NUMPRG = $_GET['NUMPRG']; //1 Número correspondente ao programa de captura utilizado ///CASO DE ERROS $CODRET = $_GET['CODRET']; //2 Código de erro $MSGRET = $_GET['MSGRET']; //200 Mensagem de erro if ( !isset($CODRET) ) { $consulta=$MySQL->query("select PRECO_TOTAL from pedidos_cliente where ID_PEDIDO_CLIENTE=$NUMPEDIDO"); list($PRECO_TOTAL) = mysql_fetch_array($consulta); $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?" ."DATA=$DATA&" ."TRANSACAO=203&" ."TRANSORIG=04&" ."PARCELAS=00&" ."FILIACAO=30355141&" ."DISTRIBUIDOR=&" // ."TOTAL=$PRECO_TOTAL"; ."TOTAL=0.01&" ."NUMPEDIDO=$NUMPEDIDO&" ."NUMAUTOR=$NUMAUTOR&" ."NUMCV=$NUMCV&" ."NUMSQN=$NUMSQN&" ."ORIGEM_BIN=$ORIGEM_BIN&" ."NUMPRG=$NUMPRG"; //AQUI já FOI ENVIADA A SEGUNDA FASE3 E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO. //A função file irá enviar a url para a Redecard sem redirecionar(sair da NatureLavie) e, ao mesdo tempo, receber o rerorno da Redecdard $file = file($url); $retorna = $file[0]; $arrLinhas = explode("&", $retorna); $i = 0; foreach ($arrLinhas AS $line) { list($variavel, $valor) = explode('=', ($line)); $variavel = trim($variavel); $$variavel = $valor; $i ++; print $variavel; print "<br>"; print $valor; } $status = $_REQUEST['CODRET']; if ($status > 1) { $autent = $_REQUEST['MSGRET']; } else { $URLCupom = "https://ecommerce.redecard.com.br/pos_virtual/cupom.asp?DATA=" . $data . "&TRANSACAO=201&NUMAUTOR=" . $arp . "&NUMCV=" . $cv; ?> <script LANGUAGE=javascript> <!-- vpos=window.open('<? echo $URLCupom; ?>','vpos','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=280,height=440'); //--> </SCRIPT> <? } } else if ( $CODRET==50 or $CODRET==52 or $CODRET==54 or $CODRET==55 or $CODRET==57 or $CODRET==59 or $CODRET==61 or $CODRET==62 or $CODRET==64 or $CODRET==66 or $CODRET==67 or $CODRET==68 or $CODRET==70 or $CODRET==71 or $CODRET==73 or $CODRET==75 or $CODRET==78 or $CODRET==79 or $CODRET==80 or $CODRET==82 or $CODRET==83 or $CODRET==84 or $CODRET==85 or $CODRET==87 or $CODRET==89 or $CODRET==90 or $CODRET==91 or $CODRET==93 or $CODRET==94 or $CODRET==95 or $CODRET==97 or $CODRET==99 ) { print $MSGRET; exit; } else if ( $CODRET==51 or $CODRET==92 or $CODRET==98 ) { print $MSGRET; exit; } else if ( $CODRET==53 ) { print $MSGRET; exit; } else if ( $CODRET==76 or $CODRET==86 ) { print $MSGRET; exit; } else if ( $CODRET==58 or $CODRET==63 or $CODRET==65 or $CODRET==69 or $CODRET==72 or $CODRET==77 or $CODRET==96 ) { print $MSGRET; exit; } else if ( $CODRET==56 or $CODRET==60 ) { print $MSGRET; exit; } else if ( $CODRET==74 ) { print $MSGRET; exit; } else if ( $CODRET==81 ) { print $MSGRET; exit; } ?> DONE.. THANKS RSRSRS AGORA É PARTIR PARA AS FORMATAÇÕE DOS TEXTOS. UFAAAAAAA VALEU A TODOS!
  13. Olá. Estou tentando configurar meu site para fazer vendas com cartao de credito - REDECARD Komerci Tem 5 etapas: 1. Loja-virtual -> Redecard A loja virtual deverá enviar os seguintes parâmetros para a Redecard, quando da chamada para a tela de captura do Komerci: Tranquilo. 2. Redecard -> Loja-virtual 2 Transação Aprovada Se a transação for aprovada e bem sucedida, a Redecard retornará os seguintes parâmetros para a loja-virtual, em método GET, através de sua URLBACK (previamente cadastrada ou fornecida em parâmetro): Deu para fazer 3. Loja-Virtual -> Redecard Caso a transação tenha sido aprovada pelo emissor, a loja-virtual deverá confirmá-la, retornando os seguintes parâmetros para o endereço: http://ecommerce.red...l/confirma.asp: O tráfego destes dados não deverá ocorrer através do browser do usuário ou com sua interferência, ou seja, o webserver da loja-virtual deverá comunicar-se diretamente com o ambiente da Redecard. Pode-se, por exemplo, utilizar componentes, serviços, servlets, etc. Este procedimento garante a segurança do tráfego dos dados entre a Redecard e a sua lojavirtual. Quando chega aqui, minha loja envia os dados para a redecard mas nõ volta o codigo de retorno para a urlback. Esse codigo de retorno é exibido com sucesso na propria pagina da redecard e ai o script para. Veja meu script. Veja onde estou errando: <? header('Content-Type: text/html; charset=utf-8'); include ("TMySQL.php"); //Abrindo conexao com o banco de dados $MySQL = new TMySQL(); $MySQL->connect($host, $db, $user, $pass); $DATA = $_GET['DATA'];//8 Data da transação $NUMPEDIDO = $_GET['NUMPEDIDO']; //16 Número do Pedido $NR_CARTAO = $_GET['NR_CARTAO']; //16 Número do Cartão mascarado $ORIGEM_BIN = $_GET['ORIGEM_BIN']; //3 Código de Nacionalidade do Emissor $NUMAUTOR = $_GET['NUMAUTOR']; //6 Número de Autorização $NUMCV = $_GET['NUMCV']; //9 Número do Comprovante de Venda (NSU) $NUMAUTENT = $_GET['NUMAUTENT']; //27 Número de Autenticação $NUMSQN = $_GET['NUMSQN']; //12 Número seqüencial único $NUMPRG = $_GET['NUMPRG']; //1 Número correspondente ao programa de captura utilizado ///CASO DE ERROS $CODRET = $_GET['CODRET']; //2 Código de erro $MSGRET = $_GET['MSGRET']; //200 Mensagem de erro if ( !isset($CODRET) ) { $consulta=$MySQL->query("select PRECO_TOTAL from pedidos_cliente where ID_PEDIDO_CLIENTE=$NUMPEDIDO"); list($PRECO_TOTAL) = mysql_fetch_array($consulta); $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?" ."DATA=$DATA&" ."TRANSACAO=203&" ."TRANSORIG=04&" ."PARCELAS=00&" ."FILIACAO=30355141&" ."DISTRIBUIDOR=&" ."TOTAL=$PRECO_TOTAL"; ."NUMPEDIDO=$NUMPEDIDO&" ."NUMAUTOR=$NUMAUTOR&" ."NUMCV=$NUMCV&" ."NUMSQN=$NUMSQN&" ."ORIGEM_BIN=$ORIGEM_BIN&" ."NUMPRG=$NUMPRG"; print "<script>document.location='$url'</script>"; } else if ( $CODRET==50 or $CODRET==52 or $CODRET==54 or $CODRET==55 or $CODRET==57 or $CODRET==59 or $CODRET==61 or $CODRET==62 or $CODRET==64 or $CODRET==66 or $CODRET==67 or $CODRET==68 or $CODRET==70 or $CODRET==71 or $CODRET==73 or $CODRET==75 or $CODRET==78 or $CODRET==79 or $CODRET==80 or $CODRET==82 or $CODRET==83 or $CODRET==84 or $CODRET==85 or $CODRET==87 or $CODRET==89 or $CODRET==90 or $CODRET==91 or $CODRET==93 or $CODRET==94 or $CODRET==95 or $CODRET==97 or $CODRET==99 ) { print $MSGRET; exit; } else if ( $CODRET==51 or $CODRET==92 or $CODRET==98 ) { print $MSGRET; exit; } else if ( $CODRET==53 ) { print $MSGRET; exit; } else if ( $CODRET==76 or $CODRET==86 ) { print $MSGRET; exit; } else if ( $CODRET==58 or $CODRET==63 or $CODRET==65 or $CODRET==69 or $CODRET==72 or $CODRET==77 or $CODRET==96 ) { print $MSGRET; exit; } else if ( $CODRET==56 or $CODRET==60 ) { print $MSGRET; exit; } else if ( $CODRET==74 ) { print $MSGRET; exit; } else if ( $CODRET==81 ) { print $MSGRET; exit; } //AQUI já FOI ENVIADA A SEGUNDA FASE E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO. else if ( $CODRET >=0 and $CODRET <=49 ) { ?> <form name="redirectform" id="redirectform" method="get" action="https://ecommerce.redecard.com.br/pos_virtual/cupom.asp" target="_self"> <input type="hidden" name="DATA" value="<?=$_GET["DATA"]?>"> <input type="hidden" name="TRANSACAO" value="201"> <input type="hidden" name="NUMAUTOR" value="<?=$_GET["NUMAUTOR"]?>"> <input type="hidden" name="NUMCV" value="<?=$_GET["NUMCV"]?>"> <input type="hidden" name="LANGUAGE" value=""> </form> <script type="text/javascript"> function enviaform() { document.redirectform.submit(); } try { enviaform(); } catch(e) { // Mozzila... setTimeout('enviaform()', 250); } </script> <? } ?>
  14. Eu sei que esta dificil pessoal mas de repente me surgiu um ideia Eu preciso saber quantas vezes uma url enviou dados para outra. Tem jeito de fazer isso? Como? Tipo assim url?acao=faz_isso. url?acao=faz_aquilo. Aqui, nós temos uma pagina em duas situações enviando dados para outra. Eu quero saber quantas vezes, dentro de um periodo de tempo, uma pagina recebeu dados do outra pagina (mas a contagem vale apenas para a mesma pagina) No script pode fazer referencia a pagina que eu quero.
  15. Ola pessoal. Estou configurando minha loja virtual para operar com os cartões visa e mastercar através do Komerci da REDECARD. Acotece que o sitema Komerci tem u fluxo de 6 envios de dados entre a loja e o Komerci. Um problema é que no primeiro fluxo, quando enviamos os dados para o Komerci, ele pedi um urlback para rerrono das autorizaçoes e nos proximos envios de dados, não pedem outra url. Mas o problema é que as variaveis repetem dai não da para validar através de if($acao="") ... pois não é pedida outra url. Como faço? Outra sitação é que eles falam que da 3 para a 4 etapa, eles pedem para utilizar componentes, serviços ou servlets. Se a url de retorno é sempre a mesma, vai sempre da no mesmo né não? E como faz esses componentes, serviços, servlets? Como fazer a chamada? É na mesna pagina? Nunca fiz! Grato a quem puder ajudar!
  16. Erros em acentuação em scripts php,mysql e html são comuns. Principalmente em versões mais recentes dos istaladores. Aqui vai uma dica (opção) de solução. Tutorial – Codificação de Caracters entre HTML, php e conexão php/mysql, MySql ANTES DE TUDO, UMA COISA MUIIIIIIIIIIIIIIIIIIIIIITO IMPORTANTE: ESCOLHA UM (único) EDITOR DE CÓDIGO E SALVE TODOS OS ARQUIVOS NO FORMATO UTF-8 SEM BOM. CASO GOSTE DO BLOCO DE NOTAS DO WINDOWS. TUDO BEM. SÓ NÃO SE ESQUEÇA DE, NA HORA DE SALVAR, TROCAR DE ANSI PARA UTF-8 (NESSE CASO, VOCÊ TERÁ UM TRABALHO EXTR A PARA LEVAR TODOS OS ARQUIVOS GERADOS NO BLOCO DE NOTAS PARA O NOTEPD ++ A FIM DE TIRAR O BOM DOS ARQUIVOS). EU RECOMENDO O DREAMWEAVER CS4 QUE JÁ SALVA AUTOMATICAMENTE EM UTF-8. Então vamos lá: 1) NO MYSQL, CODIFIQUE SUAS TABELAS COM UTF-8. ASSIM NÃO DARÁ ERRO: 2) EDITOR DE CÓDIGOS ESCOHIDO - SALVE TODOS OS ARQUIVOS NO FORMATO UTF-8; OBS.: UTF-8 SEM O “BOM” (PARA NÃO DAR PROBLEMAS COM DADOS) 3) NO CABEÇALHO, INCLUA A TAG META ABAIXO PARA OS CÓDIGOS HTML: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 4) NO CABEÇALHO, INCLUA CÓDIGO ABAIXO ANTES D OS CÓDIGOS PHP: <?php header('Content-Type: text/html; charset=utf-8'); ?> 5) NA CONEXÃO COM O MYSQL, CODIFIQUE APÓS A CONEXÃO A LINHA ABAIXO:(php 5>) <? mysql_set_charset("utf8", $link); ?> ISSO PARA QUE OS DADOS DO MYSQL NÃO VENHAM COM PROBLEMAS NOS ACENTOS
  17. Pode deixar, é que eu vacilei na questão do case sensitive. Grato!
  18. Seguinte:: O problema era que eu tinha duas funções de conexão funcionando juntas. Uma com uma classe e outra normal. Agora é o seguinte: A classe, tem uma função query <? class TMySQL { var $soquete; function connect($host,$db,$user,$pass) { $this->host = "xxxxx"; $this->db = "xxxx"; $this->user = "xxxxx"; $this->pass = "xxxxx"; $this->soquete=mysql_connect($this->host,$this->user,$this->pass); mysql_set_charset("utf8", $this->soquete); if (!$this->soquete) { echo "Não foi possível conectar-se ao Bando de Dados MySQL"; } else { if (!mysql_select_db($this->db,$this->soquete)) { echo "Banco de dados não encontrado"; } } } function query ($string) { $myquery = mysql_query($string,$this->soquete); if (!$myquery) { echo "Erro na consulta da query!<br>" . $string; } else { return $myquery; } } } ?> Minhha duvida é a seguinte:> Se eu fizer a chamada da função assim: $var= $MySql->query(""); Como eu faria para ter o mysql_num_rowa dessa query
  19. Ola Pessoal, estou criando esse tópico novo pois um anterior que estava discutindo já perdeui seu objetivo (que aliás já até foi resolvido). Pessoal. Vamos por partes. Talves assim, haja quem possa me ajudar. 1) Fiz o site todo 2) Publiquei 3) Apareceram erros de acentos (acentos vem como quadradinhos.....) 4) Observei a criptografia do banco Mysql. Era utf-8 collate unicode_ci 5) Alterei a conexão com o MySql (no php mysql_connect() para utf-8 tambem com o codigo abaixo e coloquei o cabeçalho (header) do php e do html. No arquivo de conexãoficou assim: <?php /* Conectando e escolhendo o banco de dados */ //Variaveis de conexao $host = "xxxx"; // qual o servidor $db = "xxxx"; // qual a base $user = "xxxx"; // qual o username $pass = "xxxx"; // qual a senha /* //SERVIDOR $user = "nature"; $pass = "lavie"; */ $link = mysql_connect($host,$user,$pass)or die("Não pude conectar: " . mysql_error()); mysql_select_db($db) or die("Não pude selecionar o banco de dados"); mysql_set_charset("utf8", $link); ?> E, Nos cabeçalhos: <? header('Content-Type: text/html; charset=utf-8'); include ("global/funcoes_php/var.php"); include ("global/funcoes_php/conecta.php"); include ("TMySQL.php"); include ("TCarrinho.php"); session_start(); //start aqui por causa do carrinho em cima. Se colocar start na primeira linha, dfa erro de serialize, se colocar aqui mesmo, da erro de session. ?>... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> .... Isso resolveu o problema dos caracters acentudados que vinham do banco por resposta a querys. Acontece que os arquivos que não vinham dos banco (textos livres html, variaveis php) continuavam vindo com acento em caracters. O que eu fiz 6) Abri todos os arquivos no bloco de notas e os converti de ANSI para UTF-8; O problema é que nem todos os arquivos aceitaram a conversão. Eles, depois de convertidos, voltam a ANSI. Mesmo assim isso resolveu os problemas com, acentos mas trouxeram outro problema: Classes e sessões não estavam funcionando pois junto com o utf-8, veio o BOM, que lance (invisivelmente ou traduz o ?> do php para caracters e isso fazia com que o session_start() não fosse a primeira coisa a aparecer no site dai dava erro de session e as classes passarm a ter comportamento irregular. O que eu fiz? 7) Peguei o Notepad ++ e fui retirando o BOM de todos os arquivos mas muitos deles deles não convertem para sem BOM. Nota: Coloquei o start no cabeçalho abaixo da chamada para a classe de carrinho por causa do carrinho em cima. Se colocar start na primeira linha, da erro de serialize, se colocar o serialize(), não da em nada. Agora, esta tudo funcionando direitinho, mas, por causa da posição que tive que colocar o start(), na pagina do carrinho esta dando aviso de erro de cabneçalho embora esteja funcionando tudo bem. Por favor, podem testra o script em www.naturelavie.com.br/novo. O novo no fim do site é por que é site mesmo. Cadastre um usuario fictisio (qualquer endereo de smail passa) (qualquer cpf passa) faz uma compra e verifica que todas as paginas estao sem erro. Apenas a pagina do carriho e a carrinho final estão dando erro de cabeçalho. mas funciona. Me parece que o problema tem a ver com classe e utf sem BOM Quem puder ajudar agradeço.
  20. Já esta praticamente tudo resolvido. Só preciso de uma informação: Da maioria das paginas, através de Notepad ++, conmsegui rertirar o BOM do utf8. Algumas, que mesmo que o Notepad ++ diz ter removido o BOM, quiando vai conferir estão em ANSI. Nestes casos, como fazer? Deste jeito esta dando erro de classe.
  21. Pessoal. Vamos por partes. Talves assim, haja quem possa me ajudar. 1) Fiz o site todo 2) Publiquei 3) Apareceram erros de acentos 4) Observei a criptografia do banco, era utf 5) Alterei a conexão com o MySql para utf-8 tambem com o codigo abaixo e coloquei o cabeçalho (header) do php e do html No arquivo de conexão e após a conexão. mysql_set_charset("utf8", $link); Nos cabeçalhos: <? session_start(); header('Content-Type: text/html; charset=utf-8'); include ("global/funcoes_php/var.php"); include ("global/funcoes_php/conecta.php"); include ("TMySQL.php"); include ("TCarrinho.php"); ?>... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> .... Isso resolveu o problema dos caracters acentudados que vinham do banco por resposta a querys. Acontece que os arquivos que não vinham dos banco (textos livres html, variaveis php) continuavam vindo com acento em caracters. O que eu fiz 6) Abri todos os arquivos no bloco de notas e os converti de ANSI para UTF-8; O problema é que nem todos os arquivos aceitaram a conversão. Eles, depois de convertidos, voltam a ANSI. Mesmo assim isso resolveu os problemas com, acentos mas trouxeram outro problema: Classes e sessões não estavam funcionando pois junto com o utf-8, veio o BOM, que lance (invisivelmente ou traduz o ?> do php para caracters e isso fazia com que o session_start() não fosse a primeira coisa a aparecer no site dai dava erro de session e as classes passarm a ter comportamento irregular. O que eu fiz? 7) Peguei o Notepad ++ e fui retirando o BOM de todos os arquivos mas muitos deles deles não convertem para sem BOM. Nota: Esatava dando erro nas classes de serializaçao. dai vi num site esinando como serializar e desserializar e fiz assim mas, embora o exemplo dso cara tenha dado certo, no meu script rertorna pagina vazia. Quem puder ajudar agradeço.
  22. só uma pequena correção no incicio do arquivo carrinho_conteudo.php Serializei a classe e agora não apresenta erro mas exibe a pagina em branco, ou seja, não mostra nada <?php $MySQL = new TMySQL(); $_SESSION['MySQL'] = serialize($MySQL); $MySQL = unserialize($_SESSION['MySQL']); $MySQL->connect($host, $db, $user, $pass); //Verificando se a variavel de sessão foi criada if (!session_is_registered("MeuCarrinho")){ session_register("MeuCarrinho"); $MeuCarrinho = new TCarrinho(); $_SESSION['MeuCarrinho'] = serialize($MeuCarrinho); $MeuCarrinho = unserialize($_SESSION['MeuCarrinho']); } ............
  23. Ola, encontrei esse post: http://blog.pensaofunbari.com/dragao/2009/...ualquer-pagina/, que fala da nescessidade de serialização e deserialização de classes no caso de uso co sessões. O exemplo que o cara deu funcionou mas quando jogo no meu script, a conexão com o mysql para. Por que? segue a classe: <? class TMySQL { var $host; var $db; var $user; var $pass; var $soquete; function connect($host,$db,$user,$pass) { $this->host = $host; $this->db = $db; $this->user = $user; $this->pass = $pass; $this->soquete=mysql_connect($this->host,$this->user,$this->pass); if (!$this->soquete) { echo "Não foi possível conectar-se ao Bando de Dados MySQL"; } else { if (!mysql_select_db($this->db,$this->soquete)) { echo "Banco de dados não encontrado"; } } } //QUANDO ACRESCENTEI ESTAS LINHAS ABAIXO COMENTADAS, O ERRO COM, A CONEXÃO FOI MOSTRADO. ENQUANTO ISSO, SÓ MOSTRAVA ERRO DE QUERY. function query ($string) { $myquery = mysql_query($string,$this->soquete); if (!$myquery) { echo "Erro na consulta da query!<br>" . $string; } else { return $myquery; } } /* public function __sleep() { return array($this->host, $this->user, $this->pass, $this->db); } public function __wakeup() { $this->connect(); } */ } ?> a conexão é essa: <?php /* Conectando e escolhendo o banco de dados */ //Variaveis de conexao $host = "xxx"; // qual o servidor $db = "xx"; // qual a base $user = "xxx"; // qual o username $pass = "xxx"; // qual a senha $link = mysql_connect($host,$user,$pass)or die("Não pude conectar: " . mysql_error()); mysql_select_db($db) or die("Não pude selecionar o banco de dados"); mysql_set_charset("utf8", $link); ?> E para piorar verifiquei que alguns arquivos, mesmo depois de tirar o BOM, voltam a ficar ANSI sozinhos.
  24. Converti para UTF-8 (sem DOM) usando o Notepad ++ e esta funcionado. Porem agora apresentou outro erro: Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;TCarrinho&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/nature/public_html/novo/carrinho_conteudo.php on line 26 Isso quando chamo a classe de carriho de compras abaixo: <?php /* Classe TCarrinho */ class TCarrinho { var $item_codigo = array(); var $item_quantidade = array(); /* ObtemPosicao Este metodo obtem a posicao de um item mediante ao seu codigo, retornando um valor booleano e gravando a posicao na variavel de referencia $posicao, caso o codigo do item esteja no carrinho. */ function ObtemPosicao($codigo,&$posicao){ //Percorrendo o vetor for($i=0;$i<count($this->item_codigo);$i++) { if ($this->item_codigo[$i] == $codigo) { $posicao = $i; return TRUE; } } }/* ObtemPosicao() */ /* ObtemPosicao Este metodo obtem o preço por unidade do produto tendo em mãos o codigo dele. */ function ObtemPreco($codigo){ $Sql = mysql_query("select preço from produtos where id = $codigo"); list($preco_uni) = mysql_fetch_row($Sql); return $preco_uni; //return mysql_result($sql,0,0); }/* ObtemPreco() * /* AdicinarItem Este metodo adiciona um item no carrinho */ function AdicionarItem($codigo,$quantidade) { //Inicializando parametro $posicao = -1; $achou = $this->ObtemPosicao($codigo,$posicao); if (!$achou){ $this->item_codigo[] = $codigo; $this->item_quantidade[] = $quantidade; } } /* AdicionarItem() */ /* RemoverItem Este metodo remove um item do carrinho de compra, passando o codigo do produto */ function RemoverItem($codigo) { //Inicializando parametro $posicao = -1; $achou = $this->ObtemPosicao($codigo,$posicao); if ($achou){ //Removendo o elemento do vetor array_splice($this->item_codigo, $posicao, 1); array_splice($this->item_quantidade, $posicao, 1); } } /* RemoveItem() */ /* QuantosItens Este metodo retorna a quantidade de itens incluidas no carrinho de compras */ function QuantosItens() { return count($this->item_quantidade); } /* QuantosItens() */ /* ExcluirTodosItens Este metodo retira todos os itens contidos no carrinho de compras */ function ExcluirTodosItens(){ $this->item_quantidade = null; $this->item_codigo = null; } /* ExcluirTodosItens() */ /* QuerySQL_ObtemListaDeItens Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados do carrinho de compra (id, NOME e PREÇO). O comando SQL final tera como finalidade de buscar no banco de dados apenas os dados dos itens incluidos no carrinho. */ function QuerySQL_ObtemListaDeItens(){ $itens = "where "; $STR = ""; if ($this->QuantosItens()>0) { $fixo = " id ="; for ($i=0;$i<$this->QuantosItens();$i++){ $STR = $STR . $fixo . " " . $this->item_codigo[$i]; if ($i+1<$this->QuantosItens()) { $STR = $STR . " or "; } } } if (!$STR == "") { return $itens . $STR; }else{ //Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso -1. return "where id = -1"; } } /* QuerySQL_ObtemListaDeItens() */ /* ObtemQuantidadeItem Este metodo obtem a quantidade de um Item */ function ObtemQuantidadeItem($codigo){ $posicao = -1; $achou = $this->ObtemPosicao($codigo,$posicao); if ($achou) { return $this->item_quantidade[$posicao]; }else{ return "erro ao obter quantidade do item"; } } /* ObtemQuantidaItem() */ /* ObtemSubTotalDeUmItem Este metodo retorna o subtotal de um item (QUANTIDADE * VALOR UNITARIO) */ function ObtemSubTotalDeUmItem($id,$preço){ $posicao = -1; $achou = $this->ObtemPosicao($id,$posicao); if ($achou) { return ($this->item_quantidade[$posicao]*$preço); }else{ return "erro ao obter sub total do item"; } } /* ObtemSubTotalDeUmItem() */ /* AtualizarCarrinho Este metodo coleta todos as variaveis enviadas pelo FORMULARO (method="POST") e atualiza as quantidades dos itens. */ function AtualizarCarrinho(&$VAR_ENVIADAS_PELO_BROWSER){ //Percorrendo a lista de itens e atualizando suas quantidades for ($i=0;$i<$this->QuantosItens();$i++){ $this->item_quantidade[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]]; } } /* AtualizarCarrinho() */ } /* Classe TCarrinho */ ?> carrinho_conteudo.php <?php //Verificando se a variavel de sessão foi criada if (!session_is_registered("MeuCarrinho")){ session_register("MeuCarrinho"); $MeuCarrinho = new TCarrinho(); } $MySQL = new TMySQL(); $MySQL->connect($host, $db, $user, $pass); if (!empty($op)){ switch ($op) { case "adicionar": if (!empty($id_prod)){ $Query = "select id from produtos where id = $id_prod"; $R_Query = $MySQL->query($Query); if (mysql_num_rows($R_Query)>0){ $MeuCarrinho->AdicionarItem($id_prod,1); } } break; case "excluir": $MeuCarrinho->RemoverItem($id_prod); break; case "atualizar": $MeuCarrinho->AtualizarCarrinho($_POST); break; case "finalizar": if ($MeuCarrinho->QuantosItens()>0) { echo "<script>document.location='CarrinhoFinal.php?acao=qual_cep&preco_total=$preco_total&peso_medio=$peso_medio'</script>"; } break; } } if ($MeuCarrinho->QuantosItens()==0) { echo "<table align='center'>"; echo "</tr><td>"; echo "&nbsp;<p><p><h2>Carrinho Vazio</h2><p><p>"; echo "</tdf></tr>"; echo "</table>"; } else { $QuerySQL = "select id, nome, preço, peso from produtos " . $MeuCarrinho->QuerySQL_ObtemListaDeItens(); $Resultado = $MySQL->query($QuerySQL); ?> <table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=1 WIDTH="100%" BGCOLOR="#0080C0" > <tr> <td> <center><b><font color="#FFFFFF">Minha Loja - Carrinho</font></b></center> </td> </tr> </table> <form method="POST" action="carrinho.php?op=atualizar"> <table BORDER=0 CELLSPACING=2 CELLPADDING=4 COLS=5 WIDTH="100%"> <tr BGCOLOR="#004080"> <td> <center><b><font color="#FFFF99">ITEM</font></b></center> </td> <td> <center><b><font color="#FFFF99">QTD.</font></b></center> </td> <td> <center><b><font color="#FFFF99">PRE&Ccedil;O UNIT&Aacute;RIO</font></b></center> </td> <td bgcolor="#004080"> <center><b><font color="#FFFF99">TOTAL</font></b></center> </td> <td BGCOLOR="#004080"></td> </tr> <? $preco_total = 0.00; $peso_medio = 0.00; while(list($id, $nome, $preço, $peso) = mysql_fetch_row($Resultado)) { //Computando preço total $preco_total = $preco_total + $MeuCarrinho->ObtemSubTotalDeUmItem($id,$preço); $peso_medio = $peso_medio + $MeuCarrinho->ObtemSubTotalDeUmItem($id,$peso); session_register("preco_total"); session_register("peso_medio"); echo " <tr> <td><font size=-1>". $nome ."</font></td> <td> <center><input type=TEXT name=". $id ." size=2 value=". $MeuCarrinho->ObtemQuantidadeItem($id) ."></center> </td> <td> <center><b>". number_format($preço, 2, '.', '')."</b></center> </td> <td> <center><b>". number_format($MeuCarrinho->ObtemSubTotalDeUmItem($id,$preço), 2, '.', '') ."</b></center> </td> <td><b><font face=Tahoma><font size=-2><a href=carrinho.php?op=excluir&id_prod=". $id .">Excluir</a></font></font></b></td> </tr> "; } ?> <tr> <td></td> <td><b><font color="#FF0000"></font></b>&nbsp;</td> <td> <div align=right><b><font color="#FF0000">TOTAL(R$)</font></b></div> </td> <td BGCOLOR="#FFFFD7"> <center><b><font color="#990000"><?=number_format($preco_total, 2, '.', ''); ?></font></b></center> </td> <td></td> </tr> </table> <center><input type="submit" value="Atualizar" name="Atualizar" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)"><center><br> </form> <TABLE> <TR> <TD> <form method="post" action="produtos.php?acao=listar"> <center><input type="submit" value="<< Voltar as Compras" name="Atualizar" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)"><center> </form> </TD> <TD> <form method="post" action="carrinho.php?op=finalizar"> <input type="hidden" name="preco_total" value="<?=number_format($preco_total, 2, '.', ''); ?>"> <input type="hidden" name="peso_medio" value="<?=number_format($peso_medio, 2, '.', ''); ?>"> <center><input type="submit" value="Finalizar Compra >>" name="Atualizar" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)"><center> </form> </TD> </TR> </TABLE> <? } ?> Esta iclusive destruindo as sessions. O que faço agora?
  25. 2 perguntas: 1) "tira o BOM dos arquivos". Como? 2) "A menos que o servidor seja dedicado" E se for? Como faz?
×
×
  • Criar Novo...