Раскодировать PHP old

Статус
В этой теме нельзя размещать новые ответы.
Как то так:

PHP:
<?php
$root = $_ENV['DOCUMENT_ROOT'] . '/';
define('ROOT', $root);
$sk           = new skclass();
$tpl          = new template();
$skinscript   = $_ENV["SCRIPT_NAME"];
$datecheck    = 'MS_89475' . date('n') . '8973434254080808880077700134' . date('y') . '300344' . date('m') . '3204983240000234';
$datecheckMes = 'MS_4566' . date('W') . '456077700768880077700134' . date('y') . '300344' . date('nm') . '328808820082978434';
if ($configPath = $sk->getconfigpath()) {
    if ($checkkey = $sk->openfile($configPath . "lichash")) {
        list($lastcheck, $lastfail) = explode('__', $checkkey);
        if ($lastcheck != $datecheck) {
            $mustcheck = true;
        }
    } else {
        $mustcheck = true;
    }
} else {
    $mustcheck = true;
}
$configPath = $sk->getconfigpath();
$key_path   = $configPath . "key.php";
if (strstr($skinscript, "CMD_PLUGIN") || ($skinscript == "/CMD_SKINS") || ($skinscript == "/HTM_MSDEBUG") || strstr($skinscript, "HTM_INVALID_LICENCE") || ($_ENV["USER"] == "admin" && $skinscript == "/")) {
    $dontcheck = 1;
} else {
    if ($mustcheck == true) {
        $key        = $sk->openfile($configPath . "license");
        $lic_status = checkLicence($key);
        if ($lic_status['status'] != "active") {
            $urlStatus = $lic_status['status'] . "|||" . $lic_status['message'] . "|||" . $lic_status['adminmsg'];
            $urlStatus = urlencode(base64_encode($urlStatus));
            echo '<script language="JavaScript" type="text/javascript">window.location=\'/HTM_INVALID_LICENCE?status=' . $urlStatus . '\';</script>';
            echo '<META HTTP-EQUIV="refresh" CONTENT="0; url=/HTM_INVALID_LICENCE?status=' . $urlStatus . '">';
        } else {
            $sk->whitefile($datecheck, $configPath . "lichash");
            @chmod($path . "lichash", 0777);
            $checklocalkey = $sk->openfile($configPath . "lklichash");
            if ($checklocalkey != $datecheckMes) {
                if ($keyphp = getLocalKey($key)) {
                    $sk->whitefile($datecheckMes, $configPath . "lklichash");
                    @chmod($path . "lklichash", 0777);
                    $sk->whitefile($keyphp, $configPath . "key.php");
                    @chmod($path . "key.php", 0777);
                }
            }
        }
    }
}
function checkLicence($license)
{
    $servers             = array();
    $servers[]           = 'http://licencias.outservicesa.net/license_server';
    $servers[]           = 'http://us.licencias.outservices.net/license_server';
    $installed_directory = "/license_server";
    $installed_host      = "http://licencias.outservices.net";
    list($license_type, $xx) = explode('_', $license);
    $product_id = 9999;
    if ($license_type == "MSA")
        $product_id = 15;
    if ($license_type == "MSF")
        $product_id = 16;
    if ($license_type == "MS2A")
        $product_id = 17;
    if ($license_type == "MSLT")
        $product_id = 27;
    $enable_dns_spoof = 'yes';
    $query_string     = "license=" . $license . "&product_id=" . $product_id . "&access_ip=" . server_addr() . "&access_host=" . $_SERVER['HTTP_HOST'] . '&access_token=' . $token = make_token();
    foreach ($servers as $server) {
        $sinfo = @parse_url($server);
        $data  = phpaudit_exec_socket($sinfo['host'], $sinfo['path'], '/validate_internal.php', $query_string);
        if (!$data)
            $data = @file_get_contents($installed_host . $installed_directory . "/validate_internal.php?" . $query_string);
        if ($data) {
            $parser = xml_parser_create('');
            xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
            xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
            xml_parse_into_struct($parser, $data, $values, $tags);
            xml_parser_free($parser);
            $returned = $values[0]['attributes'];
            if ($returned['status']) {
                break;
            }
        }
    }
    $skip_dns_spoof = false;
    if (!$data) {
        $array['per_server']  = $per_server;
        $array['per_install'] = $per_install;
        $array['per_site']    = $per_site;
        $data                 = validate_local_key($array);
        $skip_dns_spoof       = true;
    }
    $parser = @xml_parser_create('');
    @xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    @xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    @xml_parse_into_struct($parser, $data, $values, $tags);
    @xml_parser_free($parser);
    $returned = $values[0]['attributes'];
    if (empty($returned)) {
        $returned['status'] = "invalid";
    }
    if ($returned['status'] != "active") {
        $sinfo = @parse_url($servers[0]);
    }
    unset($query_string);
    unset($per_server);
    unset($per_install);
    unset($per_site);
    unset($server);
    unset($data);
    unset($parser);
    unset($values);
    unset($tags);
    unset($sinfo);
    unset($token);
    return $returned;
}
function make_token()
{
    return md5('fde6c53b6ffd106d7aba038a349b5575' . time());
}
function get_key()
{
    global $localKeyPath;
    $data = @file($localKeyPath);
    if (!$data) {
        return false;
    }
    $buffer = false;
    foreach ($data as $line) {
        $buffer .= $line;
    }
    if (!$buffer) {
        return false;
    }
    $buffer = @str_replace("<?PHP", "", $buffer);
    $buffer = @str_replace("?>", "", $buffer);
    $buffer = @str_replace("/*--", "", $buffer);
    $buffer = @str_replace("--*/", "", $buffer);
    return @str_replace("\n", "", $buffer);
}
function parse_local_key()
{
    global $localKeyPath;
    if (!@file_exists($localKeyPath)) {
        return false;
    }
    $raw_data  = @base64_decode(get_key());
    $raw_array = @explode("|", $raw_data);
    if (@is_array($raw_array) && @count($raw_array) < 8) {
        return false;
    }
    return $raw_array;
}
function validate_local_key($array)
{
    $raw_array = parse_local_key();
    if (!@is_array($raw_array) || $raw_array === false)
        return "<verify status='invalid_key' message='Please contact support for a new license key.' />";
    if ($raw_array[9] && @strcmp(@md5("fde6c53b6ffd106d7aba038a349b5575" . $raw_array[9]), $raw_array[10]) != 0)
        return "<verify status='invalid_key' message='Please contact support for a new license key.' />";
    if (@strcmp(@md5("fde6c53b6ffd106d7aba038a349b5575" . $raw_array[1]), $raw_array[2]) != 0)
        return "<verify status='invalid_key' message='Please contact support for a new license key.' " . $raw_array[9] . " />";
    if ($raw_array[1] < time() && $raw_array[1] != "never")
        return "<verify status='invalid_key' message='Please contact support for a new license key.' " . $raw_array[9] . " />";
    return "<verify status='active' message='The license key is valid.' " . $raw_array[9] . " />";
}
function phpaudit_exec_socket($http_host, $http_dir, $http_file, $querystring)
{
    $fp = @fsockopen($http_host, 80, $errno, $errstr, 10);
    if (!$fp) {
        return false;
    } else {
        $header = "POST " . ($http_dir . $http_file) . " HTTP/1.0\r\n";
        $header .= "Host: " . $http_host . "\r\n";
        $header .= "Content-type: application/x-www-form-urlencoded\r\n";
        $header .= "User-Agent: PHPAudit v2 (http://www.phpaudit.com)\r\n";
        $header .= "Content-length: " . @strlen($querystring) . "\r\n";
        $header .= "Connection: close\r\n\r\n";
        $header .= $querystring;
        $data = false;
        if (@function_exists('stream_set_timeout')) {
            stream_set_timeout($fp, 20);
        }
        @fputs($fp, $header);
        if (@function_exists('socket_get_status')) {
            $status = @socket_get_status($fp);
        } else {
            $status = true;
        }
        while (!@feof($fp) && $status) {
            $data .= @fgets($fp, 1024);
            if (@function_exists('socket_get_status')) {
                $status = @socket_get_status($fp);
            } else {
                if (@feof($fp) == true) {
                    $status = false;
                } else {
                    $status = true;
                }
            }
        }
        @fclose($fp);
        if (!strpos($data, '200')) {
            return false;
        }
        if (!$data) {
            return false;
        }
        $data = @explode("\r\n\r\n", $data, 2);
        if (!$data[1]) {
            return false;
        }
        if (@strpos($data[1], "verify") === false) {
            return false;
        }
        return $data[1];
    }
}
function server_addr()
{
    return ($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
}
function getLocalKey($license)
{
    global $licapi;
    include realpath(dirname(__FILE__)) . "/license.php";
    $licapi              = new IXR_Client('http://licencias.outservices.net/admin/rpc.php');
    $data                = array();
    $data['api_key']     = '2425f27c6bf1f8821c3283e3b3037085';
    $data['license_key'] = $license;
    $licapi->query('license.get_local_key', $data);
    $returned = $licapi->getResponse();
    if ($returned != '' && $returned['faultCode'] != -1 && $returned['faultCode'] != -2 && $returned['faultCode'] != -3) {
        return $returned;
    } else {
        return false;
    }
}
function getLCs()
{
    return 'MS_89475' . date('n') . '8973434254080808880077700134' . date('y') . '300344' . date('m') . '3204983240000234';
}
function getLCm()
{
    return 'MS_4566' . date('W') . '456077700768880077700134' . date('y') . '300344' . date('nm') . '328808820082978434';
}
class template
{
    function footer($cp, $dav)
    {
        echo '</td></tr><tr>';
        echo '<td height="30" class="td_footer" id="footer" colspan="2">DirectAdmin ' . $cp . ' v' . $dva . ' ? 2006 JBMC Software</td>';
        echo '</tr></table></body></html>';
    }
    function start_table($width = '100%', $cellspacing = '0', $cellpadding = '0')
    {
        echo '<table width="' . $width . '" border="0" cellspacing="' . $cellspacing . '" cellpadding="' . $cellpadding . '"><tr><td>';
    }
    function split_table()
    {
        echo '</td></tr><tr><td>';
    }
    function end_table()
    {
        echo '</td></tr></table>';
    }
}
class skclass
{
    function make_html($html, $search = '', $replace = '')
    {
        if ($search == '' || $replace == '') {
            $search  = array(
                'class=inputclass ',
                ' type=submit',
                ' type=\'submit\'',
                '<input type=button',
                '<input type=reset',
                '<input type=text',
                '<input type=password',
                '<input type=file',
                '<table class=list  cellpadding=3 cellspacing=1>',
                '<table class=list cellpadding=3 cellspacing=1>',
                '<table style="width: 75%" class=list  cellpadding=3 cellspacing=1>',
                '<br>'
            );
            $replace = array(
                '',
                ' type=submit class=boton',
                ' type=submit class=boton',
                '<input type=button class=boton',
                '<input type=reset class=boton',
                '<input type=text class=combo',
                '<input type=password class=combo',
                '<input type=file class=archivo',
                '<table class=list cellpadding=3 cellspacing=0>',
                '<table class=list cellpadding=3 cellspacing=0>',
                '<table style="width: 75%" class=list  cellpadding=3 cellspacing=0>',
                '<br />'
            );
        }
        $newhtml = str_replace($search, $replace, $html);
        return $newhtml;
    }
    function api_get($cmd, $post = false)
    {
        if (is_array($post)) {
            $is_post = true;
            $str     = '';
            foreach ($post as $var => $value) {
                if (strlen($str) > 0)
                    $str .= '&';
                $str .= $var . '=' . urlencode($value);
            }
            $post = $str;
        } else {
            $is_post = false;
        }
        $headers           = array();
        $headers['Host']   = '127.0.0.1:' . $_ENV['SERVER_PORT'];
        $headers['Cookie'] = 'session=' . $_ENV['SESSION_ID'] . '; key=' . $_ENV['SESSION_KEY'];
        if ($is_post) {
            $headers['Content-type']   = 'application/x-www-form-urlencoded';
            $headers['Content-length'] = strlen($post);
        }
        $send = ($is_post ? 'POST ' : 'GET ') . $cmd . " HTTP/1.1\r\n";
        foreach ($headers as $var => $value)
            $send .= $var . ': ' . $value . "\r\n";
        $send .= "\r\n";
        if ($is_post && strlen($post) > 0)
            $send .= $post . "\r\n\r\n";
        if ($_ENV["SSL"] == 1) {
            $sIP = 'ssl://127.0.0.1';
        } else {
            $sIP = '127.0.0.1';
        }
        $res = @fsockopen($sIP, $_SERVER['SERVER_PORT'], &$sock_errno, &$sock_errstr, 2);
        if ($sock_errno || $sock_errstr)
            return false;
        fputs($res, $send, strlen($send));
        $result = '';
        while (!feof($res))
            $result .= fgets($res, 32768);
        @fclose($res);
        $data = explode("\r\n\r\n", $result, 2);
        return $data[1];
    }
    function user_mainmenu($title, $items, $type = "item")
    {
        $output = '';
        for ($i = 0; $i < count($items); $i++) {
            if ($items[$i]['plugin']) {
                $itemimg   = "/IMG_IC_PLUGIN";
                $plugintxt = $items[$i]['plugin'];
                if (strstr($plugintxt, "stat"))
                    $itemimg = "/IMG_IC_STATS";
                if (strstr($plugintxt, "Stat"))
                    $itemimg = "/IMG_IC_STATS";
                if (strstr($plugintxt, "awstats"))
                    $itemimg = "/IMG_IC_AWSTATS";
                if (strstr($plugintxt, "Awstats"))
                    $itemimg = "/IMG_IC_AWSTATS";
                if (strstr($plugintxt, "AwStats"))
                    $itemimg = "/IMG_IC_AWSTATS";
                if (strstr($plugintxt, "smtp"))
                    $itemimg = "/IMG_IC_STATS";
                if (strstr($plugintxt, "Ruby"))
                    $itemimg = "/IMG_IC_RUBY";
                if (strstr($plugintxt, "ruby"))
                    $itemimg = "/IMG_IC_RUBY";
                if (strstr($plugintxt, "rails"))
                    $itemimg = "/IMG_IC_RUBY";
                if (strstr($plugintxt, "Rails"))
                    $itemimg = "/IMG_IC_RUBY";
                if (strstr($plugintxt, "SMTP"))
                    $itemimg = "/IMG_IC_SMTP_CONTROL";
                if (strstr($plugintxt, "smtp"))
                    $itemimg = "/IMG_IC_SMTP_CONTROL";
                if (strstr($plugintxt, "Billing"))
                    $itemimg = "/IMG_IC_BILLING";
                if (strstr($plugintxt, "billing"))
                    $itemimg = "/IMG_IC_BILLING";
                if (strstr($plugintxt, "bill"))
                    $itemimg = "/IMG_IC_BILLING";
                if (strstr($plugintxt, "payment"))
                    $itemimg = "/IMG_IC_BILLING";
                if (strstr($plugintxt, "hotlink"))
                    $itemimg = "/IMG_IC_HOTLINK";
                if (strstr($plugintxt, "iTron"))
                    $itemimg = "/IMG_IC_ITRON";
                if (strstr($plugintxt, "installatron"))
                    $itemimg = "/IMG_IC_ITRON";
                if (strstr($plugintxt, "tomcat"))
                    $itemimg = "/IMG_IC_TOMCAT";
                if (strstr($plugintxt, "Tomcat"))
                    $itemimg = "/IMG_IC_TOMCAT";
                if (strstr($plugintxt, "marina"))
                    $itemimg = "/IMG_IC_LICENSE";
                if (strstr(strtolower($plugintxt), "pear"))
                    $itemimg = "/IMG_IC_PEAR";
                if (strstr(strtolower($plugintxt), "pgsql"))
                    $itemimg = "/IMG_IC_PGSQL";
                if (strstr($plugintxt, "PostgreSQL"))
                    $itemimg = "/IMG_IC_PGSQL";
                if (strstr($plugintxt, "Postgre"))
                    $itemimg = "/IMG_IC_PGSQL";
                if (strstr(strtolower($plugintxt), "postgre"))
                    $itemimg = "/IMG_IC_PGSQL";
                if (strstr(strtolower($plugintxt), "softaculous"))
                    $itemimg = "/IMG_IC_SOFTAC";
                if (strstr(strtolower($plugintxt), "phpvs"))
                    $itemimg = "/IMG_IC_PHPVS";
                if (strstr(strtolower($plugintxt), "php version selector"))
                    $itemimg = "/IMG_IC_PHPVS";
                $pluglink = preg_replace("/<a(.*?)href=\"(.*?)\"(.*?)>(.*?)<\/a>/", "<a href=\"\\2\"><img src=\"$itemimg\"><br>\\4</a>", $items[$i]['plugin']);
                $output .= $pluglink;
            } else {
                $output .= '<a href="' . $items[$i]['link'] . '"><img src="' . $items[$i]['img'] . '"><br>' . $items[$i]['txt'] . '</a>';
            }
        }
        $start_menu = '<fieldset class="buttons-box"><legend>' . $title . '</legend>';
        $end_menu   = '</fieldset><br><br>';
        echo $start_menu . $output . $end_menu;
    }
    function submenu($title, $items, $footer = false)
    {
        $output = '<table border="0" cellspacing="0" cellpadding="0" align="center"><tr>';
        $div    = 1;
        for ($i = 0; $i < count($items); $i++) {
            $output .= '<td width="20%" align="center"><a href="' . $items[$i]['link'] . '" class="subitem" ' . $items[$i]['js'] . '><img src="' . $items[$i]['img'] . '" width="32" height="32" border="0"><br>' . $items[$i]['txt'] . '</a></td>';
            if ($div == 5) {
                $output .= '</tr><tr>';
                $div = 0;
            }
            $div++;
        }
        $output .= '</tr></table>';
        $start_menu = '<table width="100%" border="0" cellspacing="0" cellpadding="0" class=list><tr><td class=listtitle height="22" style="padding-left:3px;"><b>' . $title . '</b></td></tr><tr><td class=list>';
        $end_menu   = '</td></tr>';
        if ($footer)
            $end_menu .= '<tr><td class="listend">' . $footer . '</td></tr>';
        $end_menu .= '</table>';
        echo $start_menu . $output . $end_menu;
    }
    function box_tit($tit)
    {
        $output = '<div><table width="100%" border="0" cellspacing="0" cellpadding="0">';
        $output .= '<tr><td background="/IMG_BOX_L"><img src="/IMG_SPACER" width="3" height="22"></td>';
        $output .= '<td width="100%" class="box_tit"  background="/IMG_BG_BOX_TIT">' . $tit . '</td>';
        $output .= '<td background="/IMG_BOX_R"><img src="/IMG_SPACER" width="3" height="22"></td></tr>';
        $output .= '</table></div>';
        return $output;
    }
    function uptime($color = false)
    {
        if ($uptime = @exec("uptime")) {
            list($uptime, $load) = explode('load', $uptime);
            list($a, $load) = explode(':', $load);
            $load = trim($load);
            list($load1, $load5, $load15) = explode(',', $load);
            $load1  = trim($load1) * 1;
            $load5  = trim($load5) * 1;
            $load15 = trim($load15) * 1;
            list($a, $uptime) = explode('up', $uptime);
            list($up1, $up2, $a) = explode(',', $uptime);
            $up1           = trim($up1);
            $up2           = trim($up2);
            $uptime        = $up1 . ", " . $up2;
            $ret['uptime'] = $uptime;
        } else {
            $loads = urldecode($this->api_get("/CMD_API_LOAD_AVERAGE"));
            parse_str($loads);
            $load1  = $one;
            $load5  = $five;
            $load15 = $fifteen;
        }
        if ($color) {
            if ($load1 >= 5)
                $load1 = "<span style='color:red;'><b>$load1</b></span>";
            if ($load5 >= 5)
                $load5 = "<span style='color:red;'><b>$load5</b></span>";
            if ($load15 >= 5)
                $load15 = "<span style='color:red;'><b>$load15</b></span>";
        }
        $load        = $load1 . ", " . $load5 . ", " . $load15;
        $ret['load'] = $load;
        return $ret;
    }
    function openfile($file)
    {
        if (file_exists($file)) {
            if ($data = @file_get_contents($file)) {
                return $data;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
    function whitefile($str, $file)
    {
        if ($al = @fopen($file, "w")) {
            if (is_writable($file)) {
                @fwrite($al, $str);
                return true;
            } else {
                return false;
            }
            @fclose($al);
        } else {
            return false;
        }
    }
    function getpath()
    {
        $skinpath = $_ENV["DOCUMENT_ROOT"];
        if (preg_match("/\/home\/(.+)\/skins\/(.+)/", $skinpath)) {
            $return['skinlocate'] = "reseller";
            $return['path']       = $skinpath . "/inc/";
        } elseif (preg_match("/\/usr\/local\/directadmin\/data\/skins\/(.+)/", $skinpath)) {
            $return['skinlocate'] = "admin";
            $return['path']       = $skinpath . "/inc/";
        } else {
            if (file_exists("/usr/local/directadmin/data/skin_data/marina")) {
                $return['skinlocate'] = "admin";
                $return['path']       = "/usr/local/directadmin/data/skin_data/marina/";
                return $return;
            } else {
                return false;
            }
        }
        return $return;
    }
    function getconfigpath()
    {
        $arrPath = $this->getpath();
        if ($arrPath['skinlocate'] == "reseller") {
            return $arrPath['path'];
        } else {
            if (file_exists("/usr/local/directadmin/data/skin_data/marina")) {
                return "/usr/local/directadmin/data/skin_data/marina/";
            } else {
                return $arrPath['path'];
            }
        }
    }
    function getUserConf()
    {
        $file = $this->getconfigpath() . "userconf";
        if (!file_exists($file)) {
            $this->whitefile(serialize(array(
                "x" => "x"
            )), $file);
            @chmod($file, 0777);
        }
        $cont = $this->openfile($file);
        if ($cont) {
            $_Config = unserialize($cont);
            return $_Config;
        } else {
            return false;
        }
    }
    function saveConfig($_Config)
    {
        $file = $this->getconfigpath() . "userconf";
        $cont = serialize($_Config);
        if ($this->whitefile($cont, $file))
            return true;
        else
            return false;
    }
}
function _d6($_s)
{
    return base64_decode(str_replace('_', '=', $_s));
}
function _d2_ev($_s)
{
    return eval(base64_decode(str_replace('_', '=', $_s)));
}
function _dl3($_l1)
{
    return checkLicence($_l1);
}
?>
 
Всем привет, подскажите чем раскодировать Ion Cube

gluharev, подскажи как это делать? Хочу обнулить LithMon 2.3
Вам код раскодировать, чтобы чистый код посмотреть или кейген написать? Если второе - то вот, держите =)
Скрытое содержимое доступно для зарегистрированных пользователей!
 
dima2k,спасибо , мне нужно именно раскодировать файлы, там он не один
Вот, только код сырой, надо как минимум классы, которые сейчас "оторваны", перенести к соответствующим переменным. Такой вот у меня декодер =)
 

Вложения

  • Lightmon-Engine-v2.3.2.zip
    17,7 KB · Просмотры: 20
Не могли бы Вы помочь раскодировать парочку файлов?
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Целый день промучался, так ни чего и не получилось.
Заранее спасибо.
Опять же переводит в ionCube он не снимает кодировку.
 

Вложения

  • decode.zip
    4,2 KB · Просмотры: 20
Для просмотра ссылки Войди или Зарегистрируйся, спасибо огромное!
Но пока почему-то выдает ошибку.

Если не сложно, не могли бы Вы еще один файлик раскодировать:
Для просмотра ссылки Войди или Зарегистрируйся
Спасибо.
 
Но пока почему-то выдает ошибку.
Тут уже надо смотреть что за ошибка. Пхп ошибок быть не должно, а с логикой вполне могла какая-то конструкция некорректно раскодироваться.
Если не сложно, не могли бы Вы еще один файлик раскодировать:
Для просмотра ссылки Войди или Зарегистрируйся
Спасибо.
Пробуйте
 

Вложения

  • decode.php.zip
    1,5 KB · Просмотры: 11
прошу совета так как раскодировка файла достаточно тривиальна. что за способ защиты и как он делается, есть какие-то фришные утилиты?
 

Вложения

  • License.rar
    401 байт · Просмотры: 21
Чем можно это декодировать? Есть ли декодеры этой версии?

<?php
require_once( "Cache.php" );
class DB implements IApplicationContextAware
{

private $appContext = NULL;
private $_Connection = NULL;
private $host = NULL;
private $user = NULL;
private $password = NULL;
private $databaseName = NULL;
private $charset = NULL;

public function setAppContext( $appContext )
{
$this->appContext = $appContext;
}

public function init( )
{
$this->host = $this->appContext->getSetting( "DBHOST" );
$this->user = $this->appContext->getSetting( "DBUSER" );
$this->password = $this->appContext->getSetting( "DBPASSWORD" );
$this->databaseName = $this->appContext->getSetting( "DBNAME" );
$this->charset = $this->appContext->getSetting( "MYSQL_CHARSET" );
$this->connect( );
}

private function connect( )
{
$this->_Connection = mysql_connect( $this->host, $this->user, $this->password );
if ( $this->_Connection === false )
{
throw new Exception( "Cannot connect to MySQL server at host \"{$this->host}\" as \"{$this->user}\":".mysql_error( ) );
}
if ( !mysql_select_db( $this->databaseName, $this->_Connection ) )
{
throw new Exception( "Cannot set database \"".$this->databaseName."\":".mysql_error( ) );
}
if ( $this->charset )
{
$this->query( "SET NAMES ?s", $this->charset );
}
}

public function __sleep( )
{
return array( "host", "user", "password", "databaseName", "charset" );
}

public function __wakeup( )
{
$this->connect( );
}

public function insert_id( )
{
return mysql_insert_id( $this->_Connection );
}

public function real_escape_string( $arg )
{
return mysql_real_escape_string( $arg, $this->_Connection );
}

public function affected_rows( )
{
return mysql_affected_rows( $this->_Connection );
}

public function resetCacheForquery( )
{
$args = func_get_args( );
$sql = call_user_func_array( array(
$this,
"Sql"
), $args );
if ( Cache::exists( "DB_Q_".$sql ) )
{
Cache::reset( "DB_Q_".$sql );
}
}

public function query( )
{
$args = func_get_args( );
$display_errors = !( end( $args ) === false && !array_pop( $args ) );
$sql = call_user_func_array( array(
$this,
"Sql"
), $args );
$cacheId = "DB_Q_".$sql;
if ( Cache::exists( $cacheId ) )
{
return Cache::get( $cacheId );
}
$result = $this->getMySQLResource( $sql );
if ( is_resource( $result ) )
{
$rows = array( );
while ( $row = mysql_fetch_assoc( $result ) )
{
$rows[] = $row;
}
mysql_free_result( $result );
$count = Cache::exists( "DB_Q_count_".$sql ) ? Cache::get( "DB_Q_count_".$sql ) : 0;
++$count;
Cache::set( "DB_Q_count_".$sql, $count );
if ( 3 < $count )
{
Cache::set( $cacheId, $rows );
}
return $rows;
}
return 0 < ( $id = mysql_insert_id( $this->_Connection ) ) ? $id : true;
}

public function getSingleValue( )
{
$args = func_get_args( );
$statement = call_user_func_array( array(
$this,
"Sql"
), $args );
$resource = $this->getMySQLResource( $statement );
$result = null;
$row = mysql_fetch_row( $resource );
if ( isset( $row[0] ) )
{
$result = $row[0];
}
mysql_free_result( $resource );
return $result;
}

public function getMySQLResource( $statement )
{
if ( ( $res = mysql_query( $statement, $this->_Connection ) ) === false )
{
throw new Exception( "Error #".mysql_errno( $this->_Connection ).": ".mysql_error( $this->_Connection )." WHEN EXECUTING: {$statement} : \n" );
}
return $res;
}

public function doQuery( )
{
$args = func_get_args( );
$sql = call_user_func_array( array(
$this,
"Sql"
), $args );
return $this->getMySQLResource( $sql );
}

public function getColumnValues( $table, $column )
{
$rows = $this->query( "SELECT DISTINCT(`{$column}`) from `{$table}`" );
if ( $rows )
{
return array_values( $rows );
}
return array( );
}

public function getHash( $table, $keycolumn, $valuecolumn )
{
$result = array( );
$rows = $this->query( "SELECT `{$keycolumn}`, `{$valuecolumn}` FROM `{$table}`" );
if ( $rows )
{
foreach ( $rows as $row )
{
$result[$row[$keycolumn]] = $row[$valuecolumn];
}
}
return $result;
}

public function table_exists( $table_name )
{
if ( isset( $GLOBALS['SHOW TABLES cached for $this->table_exists'] ) )
{
$tables =& $GLOBALS['SHOW TABLES cached for \$this->table_exists'];
}
else
{
$tables = $this->query( "SHOW TABLES" );
$GLOBALS['SHOW TABLES cached for \$this->table_exists'] =& $tables;
}
foreach ( $tables as $table )
{
if ( !( current( $table ) == $table_name ) )
{
continue;
}
return true;
}
return false;
}

public function sql( )
{
global $sql_args;
$sql_args = func_get_args( );
$sql = array_shift( $sql_args );
return preg_replace_callback( "~(\\?[nsbfwlt])|\\^~", array(
$this,
"Sql_callback"
), $sql );
}

public function sql_callback( $m )
{
global $sql_args;
if ( $m[0] == "^" )
{
return defined( "DBPREFIX" ) ? DBPREFIX : "";
}
@$arg = @array_shift( $sql_args );
switch ( $m[0] )
{
case "?n" :
return intval( $arg );
case "?s" :
return "'".$this->real_escape_string( $arg )."'";
case "?b" :
return "0x".bin2hex( $arg );
case "?f" :
return floatval_ignore_locale( str_replace( ",", ".", $arg ) );
case "?w" :
return $arg;
case "?t" :
return "'".date( "Y-m-d H:i:s", $arg )."'";
case "?l" :
$str = "";
foreach ( $arg as $v )
{
$str .= "'".$this->real_escape_string( $v )."', ";
}
return substr( $str, 0, 0 - 2 );
}
}

}

?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху