Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


if (isset($_GET['listar_links'])) {
    require_once("controles/conexao.php");
    header('Content-Type: application/json; charset=utf-8');

    // Recebe os dados da requisição
    $dados_requisicao = $_GET;
    $colunas = [
            0 => 'ID',
            1 => 'logo',
            2 => 'nome_link',
            3 => 'Sinopse',
            4 => 'nome'
        ];
    // Query para contar o número de registros
    $query_count = "SELECT COUNT(l.id_link) AS qnt_link 
                            FROM link l 
                            INNER JOIN categoria c ON c.id = l.id_categoria
                            WHERE (c.nome like '%SERIES |%' OR c.nome like '%SERIES @%' OR c.nome like '%NOVELA%' and c.nome not like '%Canais%' and c.nome not like '%FILMES%')";
    if (!empty($dados_requisicao['search']['value'])) {
        $query_count .= " AND (nome_link LIKE :nome_link)";
    }

    $query_count = $conexao2->prepare($query_count);
    if (!empty($dados_requisicao['search']['value'])) {
        $valor_pesq = "%" . $dados_requisicao['search']['value'] . "%";
        $query_count->bindValue(':nome_link', $valor_pesq);
    }
    $query_count->execute();
    $result_count = $query_count->fetch(PDO::FETCH_ASSOC);

    $inicio = (int)$dados_requisicao['start'];
    $quantidade = (int)$dados_requisicao['length'];

    // Query para listar os registros com paginação
    $list_query = "SELECT l.*, c.nome as nome 
                        FROM link l  
                        INNER JOIN categoria c ON c.id = l.id_categoria 
                        WHERE (c.nome like '%SERIES |%' OR c.nome like '%SERIES @%' OR c.nome like '%NOVELA%' and c.nome not like '%Canais%' and c.nome not like '%FILMES%')";

    if (!empty($dados_requisicao['search']['value'])) {
        $list_query .= " AND (nome_link LIKE :nome_link) ";
    }

    $list_query .= " ORDER BY " . $colunas[$dados_requisicao['order'][0]['column']] . " " . $dados_requisicao['order'][0]['dir'] . " LIMIT :quantidade OFFSET :inicio";

    $list_query = $conexao2->prepare($list_query);
    $list_query->bindValue(':inicio', $inicio, PDO::PARAM_INT);
    $list_query->bindValue(':quantidade', $quantidade, PDO::PARAM_INT);

    if (!empty($dados_requisicao['search']['value'])) {
        $valor_pesq = "%" . $dados_requisicao['search']['value'] . "%";
        $list_query->bindValue(':nome_link', $valor_pesq);
    }

    // Executa a consulta
    $list_query->execute();

    // Prepara os dados para o formato JSON
    $dados = [];
    while ($row = $list_query->fetch(PDO::FETCH_ASSOC)) {
        // Registros para tabela com Child rows
        $registros_com_childs_rows = [
            "ID"       => $row['id_link'],
            "Logo"      => '<img src="'.$row['logo'].'"style="text-align:center; vertical-align:middle; width:45px; height:45px;" />',
            "Titulo" => $row['nome_link'],
            "Sinopse" => $row['sinopse'],
            "Categoria" => $row['nome'],
            "Link"      => $row['link_link'],
            "Exc"      => '<button class="btn btn-outline-danger" onclick="removerConfirma('".$row['id_link']."','".$row['nome_link']."')"><i class="far fa-trash-alt"></i></button>',
            "Alt"      => '<td><button class="btn btn-outline-secondary" onclick="editarConfirma('".$row['id_link']."','".$row['nome_link']."','".$row['logo']."','".$row['link_link']."','".$row['sinopse']."','".$row['id_categoria']."')"><i class="fas fa-edit"></i></button>'
        ];
        $dados[] = $registros_com_childs_rows;
    }

    $resultado = [
        "draw"            => intval($dados_requisicao['draw']),
        "recordsTotal"    => intval($result_count['qnt_link']),
        "recordsFiltered" => intval($result_count['qnt_link']),
        "data"            => $dados
    ];

    echo json_encode($resultado);
    
}

session_start();
    require_once("controles/usuarios.php");
    require_once("controles/links.php");
    require_once("controles/categorias.php");
    //include 'pagination.class.php';
    if (checarUsuario()) {
        require_once("cabecalho.php");
        if($_SESSION['admin']){
        }
        //$links = listarlinks();
        $categorias = listarCategoriastipo("series");
            <style id="checkme">
                .page-2content {
                    padding-left: 240px !important;
                    padding-right: 240px !important;
                }
            </style>
            <div id="conteudo-painel" class="container">
                <table id="data_table" class="display overflow-auto table" style="width: 100%;">
                  <thead class="table-dark">
                    <tr>
                      <th class='nomecol' style="width: 5%" scope="col" >#</th>
                        <th class='nomecol' style="width: 5%" scope="col" >Logo</th>
                        <th class='nomecol' style="width: 20%" scope="col" >Título</th>
                        <th class='nomecol' style="width: 20%" scope="col" >Sinopse</th>
                        <th class='nomecol' style="width: 20%" scope="col" >Categoria</th>
                        <th class='nomecol' scope="col" >Link</th>
                        <th class='nomecol' style="width: 5%" scope="col">Exc</th>
                        <th class='nomecol' style="width: 5%" scope="col">Alt</th>
                    </tr>
                  </thead>
                </table>
            </div>
        </div>
    </main>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/2.0.7/css/dataTables.dataTables.css">
<script src="//cdn.datatables.net/2.0.7/js/dataTables.js"></script>
<style type="text/css">
    .overflow-auto {
    overflow: auto !important;
}
</style>
<script >
    document.addEventListener("DOMContentLoaded", function() {
    // Função para adicionar a classe 'overflow-auto' à div 'dt-layout-cell'
    function addOverflowAuto() {
        var wrapper = document.getElementById("data_table_wrapper");
        if (wrapper) {
            var layoutCell = wrapper.querySelector(".dt-layout-table");
            var dt_control = wrapper.querySelector(".dt-control");
            if (layoutCell) {
                layoutCell.classList.add("overflow-auto");
                //console.log("Classe 'overflow-auto' adicionada à div com a classe 'dt-layout-cell'");
            }if (dt_control) {
                dt_control.classList.remove("dt-ordering-desc");
                //console.log("Classe 'dt-ordering-desc' removida da td com a classe 'dt-control'");
            }
        }
    }


    // Cria um MutationObserver para observar as mudanças no DOM
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            // Verifica se houve uma mudança no elemento com o id 'data_table_wrapper'
            if (mutation.target.id === "data_table_wrapper") {
                addOverflowAuto(); // Adiciona a classe 'overflow-auto'
                //dt_search();
            }
        });
    });

    // Configura o MutationObserver para observar mudanças no DOM
    observer.observe(document.body, { childList: true, subtree: true });

    // Verifica e adiciona a classe 'overflow-auto' imediatamente após o DOM ser carregado
    addOverflowAuto();
});
$(document).ready(function() {
    function dt_search() {
        $('#dt-search-0').addClass('col col-md-6 dt-input float-left form-control form-row').attr('placeholder', 'Pesquisar...');
        $('.dt-search').addClass('form-row d-block');
        var labelElement = document.querySelector('label[for="dt-search-0"]');
        if (labelElement) {
            labelElement.remove();
        }

        // Seleciona todos os elementos com a classe '.dt-search'
        var dtSearchElements = document.querySelectorAll('.dt-search');
        const novo_canal = document.getElementById('novo_canal');

        if (!novo_canal) {

            // Itera sobre cada elemento encontrado
            dtSearchElements.forEach(function(dtSearchElement) {
                // Seleciona o input dentro de cada elemento '.dt-search'
                var inputElement = dtSearchElement.querySelector('input');

                // Adiciona a classe 'form-row' ao input
                if (inputElement) {
                    inputElement.classList.add('form-row');

                    // Cria o elemento <i> com os atributos especificados
                    var novoElemento = document.createElement('i');
                    novoElemento.innerHTML = ' Novo';
                    novoElemento.className = 'btn btn-outline-info col col-md-2 fa-user-plus fas float-right text-dark';
                    novoElemento.setAttribute('aria-hidden', 'true');
                    novoElemento.setAttribute('id', 'novo_canal');
                    novoElemento.setAttribute('onclick', "$('#cadastro').modal()");

                    // Insere o novo elemento após o input
                    inputElement.parentNode.insertBefore(novoElemento, inputElement.nextSibling);
                }
            });
        }
    }
    var table = $('#data_table').DataTable({
        ajax: '?listar_links',
        processing: true,
        serverSide: true,
        language: {
        url: '//cdn.datatables.net/plug-ins/1.10.13/i18n/Portuguese-Brasil.json'
    },
        search: {
        searchPlaceholder: "Pesquisar..." // Placeholder para o campo de pesquisa
        },        
    layout: {
        topStart: null,
        bottom: 'paging',
        bottomStart: "info",
        bottomEnd: null
    },
        columns: [
            {
                data: "ID",
                className: "text-center"
            }, // ID
            {
                orderable: false,
                data: "Logo",
                className: "text-center"
            }, // URL
            {
                //orderable: false,
                data: "Titulo",
                className: "text-center"
            }, // Logo URL
            {
                orderable: false,
                data: "Sinopse",
                className: "text-center"
            },
            {
                //orderable: false,
                data: "Categoria",
                className: "text-center"
            },
            {
                orderable: false,
                data: "Link",
                className: "text-center"
            },
            {
                orderable: false,
                data: "Exc",
                className: "text-center acao"
            },
            {
                orderable: false,
                data: "Alt",
                className: "text-center acao"
            }, // Logo URL
            
        ],
    order: [[2, 'asc']],
    drawCallback: function() {
            // Callback chamado após cada desenho da tabela (inclusive inicialização)
            dt_search();
        }
    });

  });
 // Adiciona a classe 'form-control' ao campo de pesquisa

</script>
    
</div>

<div class="modal fade" id="cadastro" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Adicionar Conteúdo</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body" style="max-height:460px; overflow-y:auto;">
                <form id="cadastro-form">
                    <div class="container">
                        <div class="form-group">
                            <label>Nome:</label>
                            <input type="text" class="form-control" name="nome" placeholder="Nome do Link" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Logo:</label>
                            <input type="text" class="form-control" name="logo" placeholder="Link da Imagem" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Url:</label>
                            <input type="text" class="form-control" name="link" placeholder="Url do Link" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Sinopse:</label>
                            <input type="text" class="form-control" name="sinopse" placeholder="Sinopse do Conteúdo" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Categoría:</label>
                            <div class="ml-0 row">
                                <select class="selectpicker" title="Categoria" name="categoria" required autofocus>
                                    if ($categorias) {
                                        foreach($categorias as $categoria) {
                                            <option value="= $categoria['id']" > = $categoria['nome'] </option>
                                    } }
                                </select>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
			<div class="modal-footer">
				<button type="submit" form="cadastro-form" class="btn btn-primary">Adicionar</button>
				<button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
			</div>            
        </div>
    </div>
</div>


<div class="modal fade" id="remover" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Tem certeza?</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div id="remover-conteudo" class="modal-body"></div>
        </div>
    </div>
</div>


<div class="modal fade" id="editar" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Editar Conteúdo</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body" style="max-height:460px; overflow-y:auto;">
                <form id="editar-form">
                    <div class="container">
                        <input type="hidden" name="id" id="idE">
                        <div class="form-group">
                            <label>Nome:</label>
                            <input type="text" class="form-control" id="nomeE" name="nome" placeholder="Nome do Link" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Logo:</label>
                            <input type="text" class="form-control" id="logoE" name="logo" placeholder="Link da Imagem" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Url:</label>
                            <input type="text" class="form-control" id="linkE" name="link" placeholder="Url do Link" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Sinopse:</label>
                            <input type="text" class="form-control" id="sinopseE" name="sinopse" placeholder="Sinopse do Conteúdo" required autofocus>
                        </div>
                        <div class="form-group">
                            <label>Categoría:</label>
                            <div class="ml-0 row">
                                <select class="selectpicker" title="Categoría" id="categoriaE" name="categoria" required autofocus>
                                    if ($categorias) { 
                                        foreach($categorias as $categoria) {
                                            <option value="= $categoria['id']" > = $categoria['nome'] </option>
                                    } }
                                </select>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
			<div class="modal-footer">
				<button type="submit" form="editar-form" class="btn btn-primary">Editar</button>
				<button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
			</div>            
        </div>
    </div>
</div>

</body>
<script>
    function removerConfirma(id,nome) {
        $('#remover-conteudo').html('<div class="alert alert-danger" role="alert"><strong> Remover </strong>' + nome + '?</div><button type="button" class="btn btn-secondary float-right" style="margin-left:10px" data-dismiss="modal">Fechar</button><button onclick="remover(' + id + ')" type="submit" class="btn btn-danger float-right">Remover</button>');
        $('#remover').modal();
    }
    function editarConfirma(id,nome, logo, link, sinopse, categoria) {
        $('#idE').val(id);
        $('#nomeE').val(nome);
        $('#logoE').val(logo);
        $('#linkE').val(link);
        $('#sinopseE').val(sinopse);
        if (categoria !== "") {
          $('#categoriaE').val(categoria);
          $('#categoriaE').selectpicker('render');
        }
        $('#editar').modal();
    }
    function remover(id) {
        $.ajax({
            type: "POST",
            url: "controles/remover-link.php",
            data: {id: id},
            success: function(data) {
                $("#remover").modal('hide');
                data_table = $('#data_table').DataTable();
                    var pagina_atual = data_table.page(); // Armazena a página atual
                    // Atualiza a tabela
                    data_table.draw();
                    // Restaura a página após a atualização
                    data_table.page(pagina_atual).draw('page');
            }
        });
    }
    $( "#cadastro-form" ).submit(function( event ) {
        $.ajax({
            type: "POST",
            url: "controles/adicionar-link.php",
            data: $("#cadastro-form").serialize(),
            success: function(data) {
                $("#cadastro").modal('hide');
                data_table = $('#data_table').DataTable();
                    var pagina_atual = data_table.page(); // Armazena a página atual
                    // Atualiza a tabela
                    data_table.draw();
                    // Restaura a página após a atualização
                    data_table.page(pagina_atual).draw('page');
            },
            error: function (data) {
              resultado(data.responseText);
            }
        });
        event.preventDefault();
    });
    $( "#editar-form" ).submit(function( event ) {
        $.ajax({
            type: "POST",
            url: "controles/editar-link.php",
            data: $("#editar-form").serialize(),
            success: function(data) {
            	$("#editar").modal('hide');
                data_table = $('#data_table').DataTable();
                    var pagina_atual = data_table.page(); // Armazena a página atual
                    // Atualiza a tabela
                    data_table.draw();
                    // Restaura a página após a atualização
                    data_table.page(pagina_atual).draw('page');
            },
            error: function (data) {
              resultado(data.responseText);
            }
        });
        event.preventDefault();
    });
    speed_to_top = 1000;   
    $('#totop').click(function () {
        $('body,html').animate({
            scrollTop: 0
        }, speed_to_top);
        return false;
    });
    $('#totop').hide();
    $(window).scroll(function () {
        if ($(this).scrollTop() > 50) {
            $('#totop').fadeIn();
        } else {
            $('#totop').fadeOut();
        }
    });

</script>
require_once("comum.php");
    require_once("alerta.php");
</html>
} else {
    header("Location: login");
    die();
}//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program



© 2023 Quttera Ltd. All rights reserved.