Ir para conteúdo
Fórum Script Brasil
  • 0

Session não funciona


hebeto

Pergunta

Beleza pessoal??

To fazendo uma página onde o cliente entra com usuario e senha e através do usuario, é selecionado no BD os boletos que estão em atraso.

Até ai tudo bem, funciona perfeitamente.

Quando o cliente clica em Imprimir Boleto, o codigo chama outro arquivo php onde será criado o boleto. (Projeto Boleto PHP). As informações de valor, data, cliente são enviadas via Sessões, mas essas sessões não funcionam, os valores nunca são enviados.

Alguém poderia ajudar?

Segue código para verificação.

Obrigado a todos.

boleto.php

<?php
session_start();
$usuario = JFactory::getUser();

$usuario-> user; //usuario de login


$con=mysqli_connect("xxxxx","xxxxx","xxxx","xxxxxx");
$con2=mysqli_connect("xxxxx","xxxxxx","xxxxxx","xxxxxx");

if (mysqli_connect_errno()) {
  echo "Falha ao conectar ao MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM clientes where usuario='$usuario'");

while($row = mysqli_fetch_array($result)) {
$nome = $row['nome'];
$endereco = $row['endereco'];
$cpf_cnpj = $row['cpf_cnpj'];
$site = $row['site'];
$plano = $row['plano'];
}
?>
    <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<style type="text/css">
table.table1{border-bottom:1px #000 solid;}
table.table2{border-bottom:1px #CCC solid;}
</style>
<body>
Bem vindo<? echo " " . $nome?>
</br>
CPF/CNPJ:<? echo " " . $cpf_cnpj ?>
</br>
Site:<? echo " " . $site; ?>
</br>
Plano de Hospedagem:<? echo " " . $plano; ?>
</br>
</br>
<?

if ($qtde_boletos > 1)
{
echo " Você possui " . $qtde_boletos . " boletos vencidos";
}
if ($qtde_boletos <= 1)
{
echo " Você possui " . $qtde_boletos . " boleto vencido";
}
?>
</br>
</br>
<table border="0" class="table1" height="35">
  <tr>
    <td width="200" bgcolor="#999999"><p style="color:white" align="center">Vencimento</p></td>
    <td width="200" bgcolor="#999999"><p style="color:white" align="center">Valor</p></td>
    <td width="200" bgcolor="#999999"><p style="color:white" align="center">Dias Vencido</p></td>
    <td width="200" bgcolor="#999999"><p style="color:white" align="center">Valor Corrigido</p></td>
    <td width="200" bgcolor="#999999"><p style="color:white" align="center">Imprimir</p></td>
  </tr>
  </table>
<?php

function diffDate($vencimento, $data_atual, $type='', $sep='-')
{
 $vencimento = explode($sep, $vencimento);
 $data_atual = explode($sep, $data_atual);
 switch ($type)
 {
 case 'D':
 $X = 86400;
 break;
 default:
 $X = 1;
 }
 return floor (((mktime (0, 0, 0, $data_atual[1], $data_atual[2], $data_atual[0]) - mktime(0, 0, 0, $vencimento[1], $vencimento[2], $vencimento[0]))  / $X));
}

$result2 = mysqli_query($con2,"SELECT * FROM boletos where (cpf_cnpj='$cpf_cnpj')");
$total_vencido = 0;
$qtde_boletos = 0;
if ($result2)
{
while ($row2 = mysqli_fetch_array($result2)) {
$valor = $row2['valor'];
$vencimento = $row2['vencimento'];
$pago = $row2['pago'];

$multa = 2;
$mora = 0.00033;
$data_atual = date("Y-m-d");
$cont = 1;
$qtde = 0;


//$vencimento = $array_vencimento[$qtde];
$diferenca_entre_datas = diffDate($vencimento, $data_atual, 'D');
$dias_vencido = $diferenca_entre_datas;
$valor_multa = (($valor * $multa) / 100);
$valor_mora = (($valor * $mora) * $dias_vencido);
$valor_corrigido = ($valor + $valor_multa + $valor_mora);
$total_vencido = $total_vencido + $valor_corrigido;


$_SESSION['valor_corrigido'] = $valor_corrigido;
$_SESSION['nome'] = $nome;
$_SESSION['cpf_cnpj'] = $cpf_cnpj;
$_SESSION['endereco'] = $endereco;
$_SESSION['total_vencido'] = $total_vencido;
?>

<? if (!result2)
{
echo "Não há boletos vencidos";
}
/**/
?>
  <table border="0" class="table2" height="35">
  <tr>
    <td width="200"><p align="center"><? echo "" . date("d/m/Y", strtotime($vencimento));?></p></td>
    <td width="200"><p align="center"><? echo "R$ " . number_format($valor, 2, ',', '.');?></p></td>
    <td width="200"><p align="center"><? echo $dias_vencido;?></p></td>
    <td width="200"><p align="center"><? echo "R$ " . number_format($valor_corrigido, 2, ',', '.'); ?></p></td>
    <td width="200"><p align="center"><a href="http://www.xxxxxx.com.br/site/boleto_banespa.php" target="new">Imprimir Boleto</a></p></td>
  </tr>
</table>

<?
$qtde_boletos ++;
}
}
?>
<table border="0" class="table2" height="35">
<tr>
    <td width="200">&nbsp;</td>
    <td width="200"><p align="right">Total Vencido</p></td>
    <td width="200"><p align="center"><? echo "R$ " . number_format($total_vencido, 2, ',', '.'); ?></p></td>
    <td width="200"><p align="center"><a href="http://www.xxxxxx.com.br/site/boleto_banespa_total_vencido.php" target="new">Pagar Todos</a></p></td>
    <td width="200">&nbsp;</td>
  </tr>
  </table>
  </br>
  </br>
  <a href="index.php?option=com_users&task=user.logout&<?php echo JUtility::getToken(); ?>=1">
<input  type="button" name="Submit" class="button" value="Sair">
</a>
</body>
</html>

boleto_banespa.php

<?php
session_start();

echo $_SESSION['nome'];
$nome = $_SESSION['nome'];
$endereco = $_SESSION['endereco'];
$cpf = $_SESSION['cpf_cnpj'];
$valor_corrigido = $_SESSION['valor_corrigido'];

date_default_timezone_set('America/Sao_Paulo');
$dias_de_prazo_para_pagamento = 2;
$taxa_boleto = 0.00;
$data_venc = date("Y/m/d", + $dias_de_prazo_para_pagamento);  // Prazo de X dias OU informe data: "13/04/2006"; 
$valor_cobrado = $valor_corrigido; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal
$valor_cobrado = str_replace(".", ",",$valor_cobrado);
$valor_boleto=number_format($valor_cobrado+$taxa_boleto, 2, ',', '.');

$dadosboleto["nosso_numero"] = "0000100";  // Nosso numero - REGRA: Máximo de 7 caracteres!
$dadosboleto["numero_documento"] = "";	// Num do pedido ou nosso numero
$dadosboleto["data_vencimento"] = date("d/m/Y"); // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA
$dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto
$dadosboleto["data_processamento"] = date("d/m/Y"); // Data de processamento do boleto (opcional)
$dadosboleto["valor_boleto"] = number_format($valor_boleto, 2,',','.'); 	// Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula

// DADOS DO SEU CLIENTE
$dadosboleto["sacado"] = $nome;
$dadosboleto["endereco1"] = $cpf;
$dadosboleto["endereco2"] = $endereco;

// INFORMACOES PARA O CLIENTE
$dadosboleto["demonstrativo1"] = " - Boleto de pagamento hospedagem";
$dadosboleto["demonstrativo2"] = " - Em caso de dúvidas entre em contato conosco: contato@xxxxx.com.br";
$dadosboleto["demonstrativo3"] = "";
$dadosboleto["instrucoes1"] = " - Sr. Caixa, cobrar multa de 2% após o vencimento";
$dadosboleto["instrucoes2"] = " - Sr. Caixa, cobrar juros de mora de 1% após o vencimento";
$dadosboleto["instrucoes3"] = " - Não receber após 30 dias do vencimento";
$dadosboleto["instrucoes4"] = "";

// DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE
$dadosboleto["quantidade"] = "";
$dadosboleto["valor_unitario"] = "";
$dadosboleto["aceite"] = "--";		
$dadosboleto["especie"] = "REAL";
$dadosboleto["especie_doc"] = "02";


// ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- //


// DADOS PERSONALIZADOS - Banespa
$dadosboleto["codigo_cedente"] = "xxxx/xxxxxx"; // Código do cedente (Somente 11 digitos)
$dadosboleto["ponto_venda"] = ""; // Ponto de Venda = Agencia 
$dadosboleto["carteira"] = "COB";  // COB - SEM Registro
$dadosboleto["nome_da_agencia"] = "";  // Nome da agencia (Opcional)

// SEUS DADOS
$dadosboleto["identificacao"] = "xxxxxxx";
$dadosboleto["cpf_cnpj"] = "xxxxxxxxx";
$dadosboleto["endereco"] = "www.xxxxxx.com.br";
$dadosboleto["cidade_uf"] = "xxxxxxx";
$dadosboleto["cedente"] = "xxxxxxxx";

// NÃO ALTERAR!
include("include/funcoes_banespa.php"); 
include("include/layout_banespa.php");

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Hebeto,

Acho que existe algo fora do lugar:

Esse seguinte trecho está dentro do loop do While:

$_SESSION['valor_corrigido'] = $valor_corrigido;
    $_SESSION['nome'] = $nome;
    $_SESSION['cpf_cnpj'] = $cpf_cnpj;
    $_SESSION['endereco'] = $endereco;
    $_SESSION['total_vencido'] = $total_vencido;

O que eu entendi, é que o sistema gera uma lista de boletos vencidos e você tem um botao imprimir em cada linha do grid, correto?

Faz o seguinte. cria um input hidden em cada linha do grid com o codigo do boleto. Ao mandar o submit 'imprime' você captura esse campo via $_POST['codigo']; no destino e faz uma query SQL pelo codigo do boleto (codigo)

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, muito obrigado pela resposta.

É isso o que quer dizer?

<td width="200"><p align="center"><input type="hidden" name="vencimento" value="<? echo "" . date("d/m/Y", strtotime($vencimento));?>"/></p></td>

Não tenho muito conhecimento em PHP.

Caso esteja errado poderia sugerir algo mais apropriado?

Valeu!

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos facilitar as coisas:

nessa linha:

 <td width="200"><p align="center"><a href="http://www.xxxxxx.com.br/site/boleto_banespa.php" target="new">Imprimir Boleto</a></p></td>

coloque assim:

 <td width="200"><p align="center"><a href="http://www.xxxxxx.com.br/site/boleto_banespa.php?cod_bol=<? echo $codigo_boleto;?>" target="new">Imprimir Boleto</a></p></td>

veja que: $codigo_boleto deve ser o código do boleto do seu BD para ser puxado no outro script boleto_banespa.php

No boleto Banespa.php , no inicio:

<? if isset($_GET['cod_bol'])  {
       $codigo_boleto=$_GET['cod_bol']; 


...

seu codigo do boleto_banespa.php aqui

...

}
?>

Você deve colocar a parte que pega os dados DESTE boleto (cod_bol) e calcular o juros no script do boleto_banespa. Isso você já tem, basta repetir a parte do codigo que faz isso que está no boleto.php. Só que você vai fazer isso só para 1 boleto.

No fim das contas você não vai passar os dados do boleto por Sessão, e sim por GET.

Link para o comentário
Compartilhar em outros sites

  • 0

$codigo_boleto pode ser qualquer informação do boleto em que seja unico, é um identificador. De posse desse numero, você sabe que é o boleto certo que você vai chamar.

Nesse meu ultimo codigo, você não precisa de inputs para mandar os dados para o boleto_banespa.php

Estude na internet sobre o method POST e GET. É rápido e vai te ajudar muito. Procure em apostilas HTML e PHP

Link para o comentário
Compartilhar em outros sites

  • 0

Deixa ver se eu entendi sua lógica.

você quer que eu pegue um identificador do boleto ($codigo_boleto) no boleto.php e envie essa informação via GET para boleto_banespa.php.

Dentro do boleto_banespa.php vou fazer um select para pegar as demais informações do boleto, calcular os juros e gerar o novo boleto.

Seria isso?

Poderia fazer isso que propõe num arquivo separado e colocar um include no boleto_banespa.php? Acha que ficaria melhor?

Valeu cara.

Link para o comentário
Compartilhar em outros sites

  • 0

SIm, esta foi a minha lógica.

O jeito que você vai fazer para buscar os dados para recalcular os juros dentro do boleot_banespa.php já é outra história.

Mas se você fizer um include com uma função de cálculo de juros seria legal. Mas se for simplesmente por CTRL+C + CTRL+V também vale. O que importa é que funcione.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...