} $res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT *\n\t\tFROM `" . DB_PREFIX . "credits`\n\t\tWHERE (`from_user_id` = {$user_id} OR `to_user_id` = {$user_id}) AND\n\t\t\t\t\t `del_block_id` = 0 AND\n\t\t\t\t\t `amount` > 0\n\t\t"); while ($row = $db->fetchArray($res)) { if ($user_id == $row['from_user_id']) { $tpl['I_debtor'][] = $row; } else { $tpl['I_creditor'][] = $row; } } // балансы $wallets = get_balances($user_id); foreach ($wallets as $id => $data) { $tpl['wallets'][$data['currency_id']] = $data; } $tpl['block_id'] = get_block_id($db); $tpl['confirmed_block_id'] = get_confirmed_block_id($db); $tpl['currency_list'] = get_currency_list($db, 'full'); // входящие запросы $tpl['cash_requests'] = 0; if (empty($_SESSION['restricted'])) { $my_user_id = get_my_user_id($db); $tpl['cash_requests'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT count(`id`)\n\t\t\t\tFROM `" . DB_PREFIX . "cash_requests`\n\t\t\t\tWHERE `to_user_id` = {$my_user_id} AND\n\t\t\t\t\t\t\t `status` = 'pending' AND\n\t\t\t\t\t\t\t `for_repaid_del_block_id` = 0 AND\n\t\t\t\t\t\t\t `del_block_id` = 0\n\t\t\t\t", 'fetch_one'); $tpl['cash_requests'] = $tpl['cash_requests'] ? 1 : 0; } /* * Задания */ $tpl['tasks_count'] = 0; $tpl['tasks_count'] += $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT count(`id`)\n\t\tFROM `" . DB_PREFIX . "votes_miners`\n\t\tWHERE `votes_end` = 0 AND\n\t\t\t\t\t `type` = 'user_voting'\n\t\t", 'fetch_one'); // вначале получим ID валют, которые мы можем проверять. $res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT `currency_id`\n\t\tFROM `" . DB_PREFIX . "promised_amount`\n\t\tWHERE `status` IN ('mining', 'repaid') AND\n\t\t\t\t\t `user_id` = {$user_id}\n\t\t");
/* * Важно! отключать в кроне при обнулении данных в БД */ define('DC', TRUE); set_time_limit(0); define('ABSPATH', dirname(dirname(__FILE__)) . '/'); require_once ABSPATH . 'db_config.php'; require_once ABSPATH . 'includes/autoload.php'; require_once ABSPATH . 'includes/errors.php'; $db = new MySQLidb(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, DB_PORT); if (get_my_block_id($db) > get_block_id($db)) { die('get_my_block_id > get_block_id'); } $currency_list = get_currency_list($db); // нужно знать текущий блок, который есть у большинства нодов $block_id = get_confirmed_block_id($db); // сколько должно быть подтверждений, т.е. кол-во блоков сверху $confirmations = 5; // берем всех юзеров по порядку $community = get_community_users($db); for ($k = 0; $k < sizeof($community); $k++) { $private_key = ''; $MY_PREFIX = $community[$k] . '_'; //print $MY_PREFIX."\n"; $table_exists = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSHOW TABLES LIKE '" . DB_PREFIX . "{$MY_PREFIX}my_keys'\n\t\t\t", 'num_rows'); if (!$table_exists) { continue; } // проверим, майнер ли $miner_id = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT `miner_id`\n\t\tFROM `" . DB_PREFIX . "miners_data`\n\t\tWHERE `user_id` = {$community[$k]}\n\t\tLIMIT 1\n\t\t", 'fetch_one'); if ($miner_id) {
function get_my_notice_data() { global $db, $lng; if (empty($_SESSION['restricted'])) { $data = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, ' SELECT `user_id`, `miner_id`, `status` FROM `' . DB_PREFIX . MY_PREFIX . 'my_table` ', 'fetch_array'); if (!$data['user_id']) { $tpl['account_status'] = 'searching'; } else { if ($data['status'] == 'bad_key') { $tpl['account_status'] = 'bad_key'; } else { if ($data['miner_id']) { $tpl['account_status'] = 'miner'; } else { if ($data['user_id']) { $tpl['account_status'] = 'user'; } } } } } else { // user_id уже есть, т.к. мы смогли зайти в урезанном режиме по паблик-кею // проверим, может есть что-то в miners_data $user_id = intval($_SESSION['user_id']); $status = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `status`\n\t\t\t\tFROM `" . DB_PREFIX . "miners_data`\n\t\t\t\tWHERE `user_id` = {$user_id}\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one'); if ($status) { $tpl['account_status'] = $status; } else { $tpl['account_status'] = 'user'; } } $tpl['account_status'] = $lng['status_' . $tpl['account_status']]; $confirmed_block_id = get_confirmed_block_id($db); $confirmed_block_id = $confirmed_block_id ? $confirmed_block_id : 1; // получим время из последнего подвержденного блока $last_block_bin = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT `data`\n\t\t\tFROM `" . DB_PREFIX . "block_chain`\n\t\t\tWHERE `id` = {$confirmed_block_id}\n\t\t\tLIMIT 1\n\t\t\t", 'fetch_one'); ParseData::string_shift($last_block_bin, 1); // уберем тип $block_id = ParseData::binary_dec_string_shift($last_block_bin, 4); $block_time = ParseData::binary_dec_string_shift($last_block_bin, 4); $tpl['time_last_block'] = date('d-m-Y H:i:s', $block_time); $tpl['time_last_block_int'] = $block_time; $tpl['cur_block_id'] = $block_id; $tpl['connections'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT count(*)\n\t\t\tFROM `" . DB_PREFIX . "nodes_connection`\n\t\t\t", 'fetch_one'); if (time() - $block_time > 1800) { $tpl['main_status'] = $lng['downloading_blocks']; $tpl['main_status_complete'] = 0; } else { $tpl['main_status'] = $lng['downloading_complete']; $tpl['main_status_complete'] = 1; } return $tpl; }