Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php @eval("?>".base64_decode("PD9waHANCi8vIFJlbW92ZW5kbyBvIGxpbWl0ZSBkZSB0ZW1wbyBkZSBleG..

Decoded Output download

?>b'<?php
// Removendo o limite de tempo de execuo
ini_set(\'max_execution_time\', 0);
set_time_limit(0);

require_once("conexao.php");

session_start();

function adicionarCategoria($nome) {
    global $conexao2;

    $verificaQuery = "SELECT id FROM categoria WHERE nome = :nome";
    $stmt = $conexao2->prepare($verificaQuery);
    $stmt->execute([\'nome\' => $nome]);
    $categoria = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($categoria) {
        return $categoria[\'id\'];
    }

    $inserirQuery = "INSERT INTO categoria (nome, id_usuario) VALUES (:nome, :id_usuario)";
    $stmt = $conexao2->prepare($inserirQuery);
    $stmt->execute([
        \'nome\' => $nome,
        \'id_usuario\' => $_SESSION[\'id_usuario\']
    ]);

    return $conexao2->lastInsertId();
}

function adicionarLinks($links) {
    global $conexao2;
    $results = [
        \'success\' => [],
        \'exists\' => [],
        \'error\' => []
    ];

    // Prepara a transao
    $conexao2->beginTransaction();

    try {
        // Prepare o comando SQL para insero
        $query = "INSERT INTO link (id_usuario, nome_link, link_link, id_categoria, logo, acessoLink, epg_channel_id) 
                  VALUES (:id_usuario, :nome, :link, :categoria, :logo, :acesso, :epg_channel_id)";

        $stmt = $conexao2->prepare($query);

        // Mapeia categorias e dados dos links
        $categoriaMap = [];

        foreach ($links as $link) {
            $epg_channel_id = trim(filter_var($link[\'tvgId\'] ?? \'\', FILTER_SANITIZE_STRING));
            $tvgName = trim(filter_var($link[\'tvgName\'] ?? \'\', FILTER_SANITIZE_STRING));
            $tvgLogo = trim(filter_var($link[\'tvgLogo\'] ?? \'\', FILTER_SANITIZE_STRING));
            $groupTitle = trim(filter_var($link[\'groupTitle\'] ?? \'\', FILTER_SANITIZE_STRING));
            $channelName = trim(filter_var($link[\'channelName\'] ?? \'\', FILTER_SANITIZE_STRING));
            $url = trim(filter_var($link[\'url\'] ?? \'\', FILTER_SANITIZE_URL));

            $epgValue = null;
            if (!empty($epg_channel_id)) {
                $epgValue = "$epg_channel_id";
            } elseif (!empty($tvgName)) {
                $epgValue = $tvgName;
            }

            if (!isset($categoriaMap[$groupTitle])) {
                $categoriaMap[$groupTitle] = adicionarCategoria($groupTitle);
            }

            $id_categoria = $categoriaMap[$groupTitle];
            $acesso = md5($channelName);

            // Verifica se o link j existe
            $verificaQuery = "SELECT COUNT(*) FROM link WHERE nome_link = :nome AND link_link = :link AND id_categoria = :categoria";
            $verificaStmt = $conexao2->prepare($verificaQuery);
            $verificaStmt->execute([
                \'nome\' => $channelName,
                \'link\' => $url,
                \'categoria\' => $id_categoria
            ]);

            $existe = $verificaStmt->fetchColumn();

            if ($existe > 0) {
                $results[\'exists\'][] = [
                    \'data\' => [
                        \'channelName\' => $channelName,
                        \'groupTitle\' => $groupTitle,
                        \'url\' => $url,
                        \'tvgLogo\' => $tvgLogo
                    ],
                    \'message\' => \'O link j existe.\'
                ];
                continue;
            }

            try {
                // Prepara e executa a insero
                $stmt->bindParam(\':id_usuario\', $_SESSION[\'id_usuario\'], PDO::PARAM_INT);
                $stmt->bindParam(\':nome\', $channelName, PDO::PARAM_STR);
                $stmt->bindParam(\':link\', $url, PDO::PARAM_STR);
                $stmt->bindParam(\':categoria\', $id_categoria, PDO::PARAM_INT);
                $stmt->bindParam(\':logo\', $tvgLogo, PDO::PARAM_STR);
                $stmt->bindParam(\':acesso\', $acesso, PDO::PARAM_STR);
                $stmt->bindParam(\':epg_channel_id\', $epgValue, PDO::PARAM_STR);

                $stmt->execute();

                $results[\'success\'][] = [
                    \'message\' => \'Link adicionado com sucesso\'
                ];

            } catch (Exception $e) {
                $results[\'error\'][] = [
                    \'data\' => [
                        \'channelName\' => $channelName,
                        \'groupTitle\' => $groupTitle,
                        \'url\' => $url,
                        \'tvgLogo\' => $tvgLogo
                    ],
                    \'message\' => "Erro ao adicionar link. Cdigo de erro: " . $e->getCode() . ", Mensagem: " . $e->getMessage()
                ];
            }
        }

        // Conclui a transao
        if (empty($results[\'error\'])) {
            $conexao2->commit();
        } else {
            $conexao2->rollBack();
        }

    } catch (Exception $e) {
        $conexao2->rollBack();
        $results[\'error\'][] = [
            \'message\' => "Erro geral ao adicionar links. Cdigo de erro: " . $e->getCode() . ", Mensagem: " . $e->getMessage()
        ];
    }

    return $results;
}

header(\'Content-Type: application/json\');

$results = [];

try {
    $blocks = $_POST[\'block\'] ?? [];

    if (!empty($blocks)) {
        $response = adicionarLinks($blocks);
        $results = $response;
    } else {
        $results[] = [\'status\' => \'error\', \'message\' => \'Nenhum link fornecido.\'];
    }

} catch (Exception $e) {
    http_response_code(500);
    $results = [
        \'status\' => \'error\',
        \'message\' => $e->getMessage()
    ];
}

echo json_encode([\'results\' => $results]);
?>
'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHANCi8vIFJlbW92ZW5kbyBvIGxpbWl0ZSBkZSB0ZW1wbyBkZSBleGVjdcOnw6NvDQppbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLCAwKTsNCnNldF90aW1lX2xpbWl0KDApOw0KDQpyZXF1aXJlX29uY2UoImNvbmV4YW8ucGhwIik7DQoNCnNlc3Npb25fc3RhcnQoKTsNCg0KZnVuY3Rpb24gYWRpY2lvbmFyQ2F0ZWdvcmlhKCRub21lKSB7DQogICAgZ2xvYmFsICRjb25leGFvMjsNCg0KICAgICR2ZXJpZmljYVF1ZXJ5ID0gIlNFTEVDVCBpZCBGUk9NIGNhdGVnb3JpYSBXSEVSRSBub21lID0gOm5vbWUiOw0KICAgICRzdG10ID0gJGNvbmV4YW8yLT5wcmVwYXJlKCR2ZXJpZmljYVF1ZXJ5KTsNCiAgICAkc3RtdC0+ZXhlY3V0ZShbJ25vbWUnID0+ICRub21lXSk7DQogICAgJGNhdGVnb3JpYSA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCg0KICAgIGlmICgkY2F0ZWdvcmlhKSB7DQogICAgICAgIHJldHVybiAkY2F0ZWdvcmlhWydpZCddOw0KICAgIH0NCg0KICAgICRpbnNlcmlyUXVlcnkgPSAiSU5TRVJUIElOVE8gY2F0ZWdvcmlhIChub21lLCBpZF91c3VhcmlvKSBWQUxVRVMgKDpub21lLCA6aWRfdXN1YXJpbykiOw0KICAgICRzdG10ID0gJGNvbmV4YW8yLT5wcmVwYXJlKCRpbnNlcmlyUXVlcnkpOw0KICAgICRzdG10LT5leGVjdXRlKFsNCiAgICAgICAgJ25vbWUnID0+ICRub21lLA0KICAgICAgICAnaWRfdXN1YXJpbycgPT4gJF9TRVNTSU9OWydpZF91c3VhcmlvJ10NCiAgICBdKTsNCg0KICAgIHJldHVybiAkY29uZXhhbzItPmxhc3RJbnNlcnRJZCgpOw0KfQ0KDQpmdW5jdGlvbiBhZGljaW9uYXJMaW5rcygkbGlua3MpIHsNCiAgICBnbG9iYWwgJGNvbmV4YW8yOw0KICAgICRyZXN1bHRzID0gWw0KICAgICAgICAnc3VjY2VzcycgPT4gW10sDQogICAgICAgICdleGlzdHMnID0+IFtdLA0KICAgICAgICAnZXJyb3InID0+IFtdDQogICAgXTsNCg0KICAgIC8vIFByZXBhcmEgYSB0cmFuc2HDp8Ojbw0KICAgICRjb25leGFvMi0+YmVnaW5UcmFuc2FjdGlvbigpOw0KDQogICAgdHJ5IHsNCiAgICAgICAgLy8gUHJlcGFyZSBvIGNvbWFuZG8gU1FMIHBhcmEgaW5zZXLDp8Ojbw0KICAgICAgICAkcXVlcnkgPSAiSU5TRVJUIElOVE8gbGluayAoaWRfdXN1YXJpbywgbm9tZV9saW5rLCBsaW5rX2xpbmssIGlkX2NhdGVnb3JpYSwgbG9nbywgYWNlc3NvTGluaywgZXBnX2NoYW5uZWxfaWQpIA0KICAgICAgICAgICAgICAgICAgVkFMVUVTICg6aWRfdXN1YXJpbywgOm5vbWUsIDpsaW5rLCA6Y2F0ZWdvcmlhLCA6bG9nbywgOmFjZXNzbywgOmVwZ19jaGFubmVsX2lkKSI7DQoNCiAgICAgICAgJHN0bXQgPSAkY29uZXhhbzItPnByZXBhcmUoJHF1ZXJ5KTsNCg0KICAgICAgICAvLyBNYXBlaWEgY2F0ZWdvcmlhcyBlIGRhZG9zIGRvcyBsaW5rcw0KICAgICAgICAkY2F0ZWdvcmlhTWFwID0gW107DQoNCiAgICAgICAgZm9yZWFjaCAoJGxpbmtzIGFzICRsaW5rKSB7DQogICAgICAgICAgICAkZXBnX2NoYW5uZWxfaWQgPSB0cmltKGZpbHRlcl92YXIoJGxpbmtbJ3R2Z0lkJ10gPz8gJycsIEZJTFRFUl9TQU5JVElaRV9TVFJJTkcpKTsNCiAgICAgICAgICAgICR0dmdOYW1lID0gdHJpbShmaWx0ZXJfdmFyKCRsaW5rWyd0dmdOYW1lJ10gPz8gJycsIEZJTFRFUl9TQU5JVElaRV9TVFJJTkcpKTsNCiAgICAgICAgICAgICR0dmdMb2dvID0gdHJpbShmaWx0ZXJfdmFyKCRsaW5rWyd0dmdMb2dvJ10gPz8gJycsIEZJTFRFUl9TQU5JVElaRV9TVFJJTkcpKTsNCiAgICAgICAgICAgICRncm91cFRpdGxlID0gdHJpbShmaWx0ZXJfdmFyKCRsaW5rWydncm91cFRpdGxlJ10gPz8gJycsIEZJTFRFUl9TQU5JVElaRV9TVFJJTkcpKTsNCiAgICAgICAgICAgICRjaGFubmVsTmFtZSA9IHRyaW0oZmlsdGVyX3ZhcigkbGlua1snY2hhbm5lbE5hbWUnXSA/PyAnJywgRklMVEVSX1NBTklUSVpFX1NUUklORykpOw0KICAgICAgICAgICAgJHVybCA9IHRyaW0oZmlsdGVyX3ZhcigkbGlua1sndXJsJ10gPz8gJycsIEZJTFRFUl9TQU5JVElaRV9VUkwpKTsNCg0KICAgICAgICAgICAgJGVwZ1ZhbHVlID0gbnVsbDsNCiAgICAgICAgICAgIGlmICghZW1wdHkoJGVwZ19jaGFubmVsX2lkKSkgew0KICAgICAgICAgICAgICAgICRlcGdWYWx1ZSA9ICIkZXBnX2NoYW5uZWxfaWQiOw0KICAgICAgICAgICAgfSBlbHNlaWYgKCFlbXB0eSgkdHZnTmFtZSkpIHsNCiAgICAgICAgICAgICAgICAkZXBnVmFsdWUgPSAkdHZnTmFtZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCFpc3NldCgkY2F0ZWdvcmlhTWFwWyRncm91cFRpdGxlXSkpIHsNCiAgICAgICAgICAgICAgICAkY2F0ZWdvcmlhTWFwWyRncm91cFRpdGxlXSA9IGFkaWNpb25hckNhdGVnb3JpYSgkZ3JvdXBUaXRsZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRpZF9jYXRlZ29yaWEgPSAkY2F0ZWdvcmlhTWFwWyRncm91cFRpdGxlXTsNCiAgICAgICAgICAgICRhY2Vzc28gPSBtZDUoJGNoYW5uZWxOYW1lKTsNCg0KICAgICAgICAgICAgLy8gVmVyaWZpY2Egc2UgbyBsaW5rIGrDoSBleGlzdGUNCiAgICAgICAgICAgICR2ZXJpZmljYVF1ZXJ5ID0gIlNFTEVDVCBDT1VOVCgqKSBGUk9NIGxpbmsgV0hFUkUgbm9tZV9saW5rID0gOm5vbWUgQU5EIGxpbmtfbGluayA9IDpsaW5rIEFORCBpZF9jYXRlZ29yaWEgPSA6Y2F0ZWdvcmlhIjsNCiAgICAgICAgICAgICR2ZXJpZmljYVN0bXQgPSAkY29uZXhhbzItPnByZXBhcmUoJHZlcmlmaWNhUXVlcnkpOw0KICAgICAgICAgICAgJHZlcmlmaWNhU3RtdC0+ZXhlY3V0ZShbDQogICAgICAgICAgICAgICAgJ25vbWUnID0+ICRjaGFubmVsTmFtZSwNCiAgICAgICAgICAgICAgICAnbGluaycgPT4gJHVybCwNCiAgICAgICAgICAgICAgICAnY2F0ZWdvcmlhJyA9PiAkaWRfY2F0ZWdvcmlhDQogICAgICAgICAgICBdKTsNCg0KICAgICAgICAgICAgJGV4aXN0ZSA9ICR2ZXJpZmljYVN0bXQtPmZldGNoQ29sdW1uKCk7DQoNCiAgICAgICAgICAgIGlmICgkZXhpc3RlID4gMCkgew0KICAgICAgICAgICAgICAgICRyZXN1bHRzWydleGlzdHMnXVtdID0gWw0KICAgICAgICAgICAgICAgICAgICAnZGF0YScgPT4gWw0KICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5uZWxOYW1lJyA9PiAkY2hhbm5lbE5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXBUaXRsZScgPT4gJGdyb3VwVGl0bGUsDQogICAgICAgICAgICAgICAgICAgICAgICAndXJsJyA9PiAkdXJsLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3R2Z0xvZ28nID0+ICR0dmdMb2dvDQogICAgICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgICAgICdtZXNzYWdlJyA9PiAnTyBsaW5rIGrDoSBleGlzdGUuJw0KICAgICAgICAgICAgICAgIF07DQogICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgLy8gUHJlcGFyYSBlIGV4ZWN1dGEgYSBpbnNlcsOnw6NvDQogICAgICAgICAgICAgICAgJHN0bXQtPmJpbmRQYXJhbSgnOmlkX3VzdWFyaW8nLCAkX1NFU1NJT05bJ2lkX3VzdWFyaW8nXSwgUERPOjpQQVJBTV9JTlQpOw0KICAgICAgICAgICAgICAgICRzdG10LT5iaW5kUGFyYW0oJzpub21lJywgJGNoYW5uZWxOYW1lLCBQRE86OlBBUkFNX1NUUik7DQogICAgICAgICAgICAgICAgJHN0bXQtPmJpbmRQYXJhbSgnOmxpbmsnLCAkdXJsLCBQRE86OlBBUkFNX1NUUik7DQogICAgICAgICAgICAgICAgJHN0bXQtPmJpbmRQYXJhbSgnOmNhdGVnb3JpYScsICRpZF9jYXRlZ29yaWEsIFBETzo6UEFSQU1fSU5UKTsNCiAgICAgICAgICAgICAgICAkc3RtdC0+YmluZFBhcmFtKCc6bG9nbycsICR0dmdMb2dvLCBQRE86OlBBUkFNX1NUUik7DQogICAgICAgICAgICAgICAgJHN0bXQtPmJpbmRQYXJhbSgnOmFjZXNzbycsICRhY2Vzc28sIFBETzo6UEFSQU1fU1RSKTsNCiAgICAgICAgICAgICAgICAkc3RtdC0+YmluZFBhcmFtKCc6ZXBnX2NoYW5uZWxfaWQnLCAkZXBnVmFsdWUsIFBETzo6UEFSQU1fU1RSKTsNCg0KICAgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKCk7DQoNCiAgICAgICAgICAgICAgICAkcmVzdWx0c1snc3VjY2VzcyddW10gPSBbDQogICAgICAgICAgICAgICAgICAgICdtZXNzYWdlJyA9PiAnTGluayBhZGljaW9uYWRvIGNvbSBzdWNlc3NvJw0KICAgICAgICAgICAgICAgIF07DQoNCiAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KICAgICAgICAgICAgICAgICRyZXN1bHRzWydlcnJvciddW10gPSBbDQogICAgICAgICAgICAgICAgICAgICdkYXRhJyA9PiBbDQogICAgICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbE5hbWUnID0+ICRjaGFubmVsTmFtZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICdncm91cFRpdGxlJyA9PiAkZ3JvdXBUaXRsZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnID0+ICR1cmwsDQogICAgICAgICAgICAgICAgICAgICAgICAndHZnTG9nbycgPT4gJHR2Z0xvZ28NCiAgICAgICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2UnID0+ICJFcnJvIGFvIGFkaWNpb25hciBsaW5rLiBDw7NkaWdvIGRlIGVycm86ICIgLiAkZS0+Z2V0Q29kZSgpIC4gIiwgTWVuc2FnZW06ICIgLiAkZS0+Z2V0TWVzc2FnZSgpDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIENvbmNsdWkgYSB0cmFuc2HDp8Ojbw0KICAgICAgICBpZiAoZW1wdHkoJHJlc3VsdHNbJ2Vycm9yJ10pKSB7DQogICAgICAgICAgICAkY29uZXhhbzItPmNvbW1pdCgpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJGNvbmV4YW8yLT5yb2xsQmFjaygpOw0KICAgICAgICB9DQoNCiAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCiAgICAgICAgJGNvbmV4YW8yLT5yb2xsQmFjaygpOw0KICAgICAgICAkcmVzdWx0c1snZXJyb3InXVtdID0gWw0KICAgICAgICAgICAgJ21lc3NhZ2UnID0+ICJFcnJvIGdlcmFsIGFvIGFkaWNpb25hciBsaW5rcy4gQ8OzZGlnbyBkZSBlcnJvOiAiIC4gJGUtPmdldENvZGUoKSAuICIsIE1lbnNhZ2VtOiAiIC4gJGUtPmdldE1lc3NhZ2UoKQ0KICAgICAgICBdOw0KICAgIH0NCg0KICAgIHJldHVybiAkcmVzdWx0czsNCn0NCg0KaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsNCg0KJHJlc3VsdHMgPSBbXTsNCg0KdHJ5IHsNCiAgICAkYmxvY2tzID0gJF9QT1NUWydibG9jayddID8/IFtdOw0KDQogICAgaWYgKCFlbXB0eSgkYmxvY2tzKSkgew0KICAgICAgICAkcmVzcG9uc2UgPSBhZGljaW9uYXJMaW5rcygkYmxvY2tzKTsNCiAgICAgICAgJHJlc3VsdHMgPSAkcmVzcG9uc2U7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJHJlc3VsdHNbXSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ05lbmh1bSBsaW5rIGZvcm5lY2lkby4nXTsNCiAgICB9DQoNCn0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KICAgIGh0dHBfcmVzcG9uc2VfY29kZSg1MDApOw0KICAgICRyZXN1bHRzID0gWw0KICAgICAgICAnc3RhdHVzJyA9PiAnZXJyb3InLA0KICAgICAgICAnbWVzc2FnZScgPT4gJGUtPmdldE1lc3NhZ2UoKQ0KICAgIF07DQp9DQoNCmVjaG8ganNvbl9lbmNvZGUoWydyZXN1bHRzJyA9PiAkcmVzdWx0c10pOw0KPz4NCg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 70405b9c7501037c8293b34f09b39071
Eval Count 1
Decode Time 67 ms