
Carlos Rocha
Membros-
Total de itens
1.302 -
Registro em
-
Última visita
Tudo que Carlos Rocha postou
-
Olá pessoal. Bom dia a todos! Estou com uma dúvida tremenda com relação à REDECARD. Seguinte: O processo de cobrança via cartão se faz em 5 fazes 1 - site -> reecard - aqui o site envia o form onde estaõ as escohas do clinte de qual cartão escoheu, se mastercard ou diners, valor da nota, código do estabelecimento, dentre outros. Após esse passo, ainda no passo 1, abre a pagina da redecard onde o comprador irá digitar os dados do seu cartão. 2 - reecard -> site - aqui a redecard, de posse desses dados eniados pelo site, vereifica tambem os dados do cartão do comprador e, envia o código de confirmação para o site. 3 - site -> reecard - aqui, o site, de posso do código de confiormação, verififica sua concordancia e dispara para a redecard outros dados solicitados. 4 - reecard -> site - aqui, redecard, entende que, tanto a loja quanto a redecard, aprovaram (ou não) a transaçao e envia o código de aprovaçao (ou não) para que o site reenvie esse código à redecard em sua pagina de exibir cupon. 5 - site -> reecard - aqui, o site reenvia esse código à redecard em sua pagina de exibir cupon e a redecard ()em seu site e em forma de pop'up, gera o cupon de aprovação (ou não) para o cliente) Bom, onde esta a minha dúvida? Então, O pessoal do forum fala muito de um módulo de conexão com a redecard para fazer esses procedimentos, eu até achei um desses módulo mas não consegui configurar (ou pelo menos entender). Então o que eu fiz: Bom, fiz um código que fizesse o serviço (e esta dando certo) mas com um detalhe que esta me deixando digamos, como programador, não muito feliz. O que é? Vamos lá. Passo 1 -> ok, após abertura da tela de captura, onde o cliente (comprador) coloca os dados do cartão, a redecard começa a validar o dados do cartão e, (aqui esta meu problema {mas funciona direito}) nesse momento, em vez da redecarsd enviar os dasdos do passo 2 para o site na mesma pagina, ela esta abrindo outra janela (não é popup não), e, a página onde estava senddo validado os dados do cartão, fica la toda em branco. Passo 2 -> ok Passo 3 -> ok Passo 4 -> ok Passo 5 -> ok Bom, dizem que esse problema da pagina ficar em branco, usando modulo, não ocorre pois a redecard trata os dadsos com, o módulo. Mas não tenho a mínima ideia de como implantar isso. Segue o código que estou usando: <? //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 if ( !isset($_REQUEST['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_get_contents 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>"; $URLCupom = "https://ecommerce.redecard.com.br/pos_virtual/cupom.asp?" ."DATA=$_GET[DATA]&" ."TRANSACAO=201&" ."NUMAUTOR=$_GET[NUMAUTOR]&" ."NUMCV=$_GET[NUMCV]&" ."LANGUAGE=1"; if ($_REQUEST['CODRET']==0) { ?> <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 (($_REQUEST['CODRET']>0) and ($_REQUEST['CODRET'] < 50) ){ print "<table align='center'"; print "<tr><td align='center'>"; print "<br>"; print "Resultado da transaçao pela Redecard:"; print "<br>"; print $_REQUEST['MSGRET']; print "</td></tr>"; print "</table>"; } }//fim do se não vier codigo de erro else if ($_REQUEST['CODRET'] > 49) { print "<table align='center'"; print "<tr><td align='center'>"; print "<br>"; print "Resultado da transaçao pela Redecard:"; print "<br>"; print $_REQUEST['MSGRET']; print "</td></tr>"; print "</table>"; } ?> FICO MUITO AGRADERCIDO AO PROFISSIONAL (OU ESTUDANTE) QUE POUDER ME AJUDAR A SAIER DESSA!
-
Ficou mais enxuto 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 if ( !isset($_REQUEST['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_get_contents 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>"; $URLCupom = "https://ecommerce.redecard.com.br/pos_virtual/cupom.asp?" ."DATA=$_GET[DATA]&" ."TRANSACAO=201&" ."NUMAUTOR=$_GET[NUMAUTOR]&" ."NUMCV=$_GET[NUMCV]&" ."LANGUAGE=1"; if ($_REQUEST['CODRET']==0) { ?> <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 (($_REQUEST['CODRET']>0) and ($_REQUEST['CODRET'] < 50) ){ print "<table align='center'"; print "<tr><td align='center'>"; print "<br>"; print "Resultado da transaçao pela Redecard:"; print "<br>"; print $_REQUEST['MSGRET']; print "</td></tr>"; print "</table>"; } }//fim do se não vier codigo de erro else if ($_REQUEST['CODRET'] > 49) { print "<table align='center'"; print "<tr><td align='center'>"; print "<br>"; print "Resultado da transaçao pela Redecard:"; print "<br>"; print $_REQUEST['MSGRET']; print "</td></tr>"; print "</table>"; } ?>
-
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?
-
Paginaçao de resultados em arquivos de log
pergunta respondeu ao Carlos Rocha de Carlos Rocha em PHP
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ú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! -
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ú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>"; ?>
-
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.
-
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
-
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!
-
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
-
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.
-
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.
-
Pois é mas ai que morre o problema. Onde por essa tag <?
-
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?
-
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!
-
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> <? } ?>
-
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.
-
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!
-
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
-
Pode deixar, é que eu vacilei na questão do case sensitive. Grato!
-
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
-
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.
-
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.
-
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.
-
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']); } ............
-
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.