errorHandler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']); } } set_error_handler('errorHandler'); register_shutdown_function('fatalErrorShutdownHandler'); include_once '../../config.php'; // берем конфиг include_once '../../gears/functions.php'; // подключаем функции include_once '../../gears/di.php'; // подключаем класс библиотеки класов include_once '../../gears/db.php'; // подключаем класс базы // создаем подключение к базе cdim('db', 'connect', $config); // забираем из базы опции и кладем их в конфиг $options = cdim('db', 'query', "SELECT * FROM options"); // кладем в конфиг все что забрали из базы (все опции) if (isset($options)) { foreach ($options as $k => $v) { $config['options'][$v->option_name] = $v->option_value; } } // авторизация include_once '../auth/auth.php'; include_once '../../gears/RC4.php'; $rc4 = new RC4(); $apitoken = serialize(array($config['user']['id'], intval($_POST['flow_id']))); $apitoken = base64url_encode($rc4->crypt_str($config['options']['rc4key'], $apitoken)); $link = $config['options']['siteurl'] . '/api.php?apitoken=' . $apitoken; exit(json_encode(array('type' => 'success', 'msg' => $link)));
// убиваем ссылку cdim('db','query',"DELETE FROM `proxy` WHERE `id` = '".$proxy->id."';"); // еще раз пытаемся подобрать ссылку $proxy = getPROXY(); } else { // проверка чистая // обновим последнюю проверку cdim('db','query',"UPDATE `proxy` SET `last_check` = ".time()." WHERE `id` = ".$proxy->id.";"); } } */ return $proxy; } include 'gears/RC4.php'; $rc4 = new RC4(); $detoken = unserialize($rc4->crypt_str($config['options']['rc4key'], base64url_decode($apitoken))); $user_id = intval(trim($detoken[0])); $flow_id = intval(trim($detoken[1])); checkTarif($user_id); $user = checkToken($user_id, $flow_id); $token = getToken($flow_id); /***** BLOCK ALL, witchout this list ******/ $user_ip_addr = $_SERVER['REMOTE_ADDR']; $block_list_way = 'manage/addl/block_list_' . $user_id . '.lst'; if (file_exists($block_list_way)) { $file_arr = array(); $file_data = file_get_contents($block_list_way); $file_arr = unserialize($file_data); if (isset($file_arr[$flow_id])) { if (count($file_arr[$flow_id]) > 0 && !in_array($user_ip_addr, $file_arr[$flow_id])) { die('..');
$vds = base64url_decode($query[0]); $token = base64url_decode($query[1]); if (isset($_GET['debug']) && $_GET['debug'] == 1) { echo $token . "<br>"; } $rc4 = new RC4(); $vds = $rc4->crypt_str($key, $vds); if (isset($_GET['debug']) && $_GET['debug'] == 1) { echo $vds . "<br>"; } // надо определить каким способом передавать данные // тут я попозже допишу... // отправляем курлом наши параметры $data = proxyStream($vds, $token, $post); if (isset($_GET['debug']) && $_GET['debug'] == 1) { echo $data; } if ($data === false) { exit('_'); } // распаковываем ответ $rc4 = new RC4(); $data = unserialize($rc4->crypt_str($key, base64_decode($data))); if (isset($data['headers']) && $data['headers'] != '' && is_array($data['headers'])) { foreach ($data['headers'] as $k => $v) { header($v); } } if (isset($data['data']) && $data['data'] != '') { echo $data['data']; }