mysqli_query($mysqli_link, 'SET NAMES "utf8" '); for ($i = 0; $i < sizeof($queries); $i++) { mysqli_multi_query($mysqli_link, $queries[$i]); while (@mysqli_next_result($mysqli_link)) { } if (mysqli_error($mysqli_link)) { $tpl['error'][] = 'Error performing query (' . $queries[$i] . ') - Error message : ' . mysqli_error($mysqli_link); } } // возможно идет установка пула, тогда ловим файл c user_id;public_key if ($_POST['pool_data']) { if (!check_input_data($_POST['pool_admin_user_id'], 'int')) { die('bad pool_admin_user_id'); } $pool_admin_user_id = intval($_POST['pool_admin_user_id']); $error = pool_add_users($_POST['pool_data'], $my_queries, $mysqli_link, $prefix, true); if ($error) { die($error); } $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tINSERT INTO `{$prefix}config` (\n\t\t\t\t\t`pool_admin_user_id`,\n\t\t\t\t\t`auto_reload`\n\t\t\t\t)\n\t\t\t\tVALUES (\n\t\t\t\t\t{$pool_admin_user_id},\n\t\t\t\t\t86400\n\t\t\t\t)"); } else { $my_prefix = ''; for ($j = 0; $j < sizeof($my_queries); $j++) { $my_queries[$j] = str_ireplace('[my_prefix]', $my_prefix, $my_queries[$j]); mysqli_multi_query($mysqli_link, $my_queries[$j]); while (@mysqli_next_result($mysqli_link)) { } if (mysqli_error($mysqli_link)) { $tpl['error'][] = 'Error performing query (' . $my_queries[$j] . ') - Error message : ' . mysqli_error($mysqli_link); } }
$community = get_community_users($db); // если мест в пуле нет, то просто запишем юзера в очередь $pool_max_users = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT `pool_max_users`\n\t\t\tFROM `" . DB_PREFIX . "config`\n\t\t\t", 'fetch_one'); if (sizeof($community) >= $pool_max_users) { $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tINSERT IGNORE INTO `" . DB_PREFIX . "pool_waiting_list` (\n\t\t\t\t`email`,\n\t\t\t\t`time`,\n\t\t\t\t`user_id`\n\t\t\t)\n\t\t\tVALUES (\n\t\t\t\t\t'{$email}',\n\t\t\t\t\t" . time() . ",\n\t\t\t\t\t{$user_id}\n\t\t\t)"); die(json_encode(array('error' => $lng['pool_is_full']))); } // регистрируем юзера в пуле // вначале убедитмся, что такой user_id у нас уже не зареган $community = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT `user_id`\n\t\tFROM `" . DB_PREFIX . "community`\n\t\tWHERE `user_id` = {$user_id}\n\t\t", 'fetch_one'); if ($community) { die(json_encode(array('error' => $lng['pool_user_id_is_busy']))); } $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tINSERT IGNORE INTO `" . DB_PREFIX . "community` (\n\t\t\t`user_id`\n\t\t)\n\t\tVALUES (\n\t\t\t{$user_id}\n\t\t)"); $rsa = new Crypt_RSA(); $key = array(); $key['e'] = new Math_BigInteger($_POST['e'], 16); $key['n'] = new Math_BigInteger($_POST['n'], 16); $rsa->setPublicKey($key, CRYPT_RSA_PUBLIC_FORMAT_RAW); $PublicKey = clear_public_key($rsa->getPublicKey()); // если таблы my для этого юзера уже есть в БД, то они перезапишутся. $mysqli_link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, DB_PORT); $db_name = DB_NAME; $prefix = DB_PREFIX; include ABSPATH . 'schema.php'; mysqli_query($mysqli_link, 'SET NAMES "utf8" '); pool_add_users("{$user_id};{$PublicKey}\n", $my_queries, $mysqli_link, DB_PREFIX, false); define('MY_PREFIX', $user_id . '_'); $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tUPDATE `" . DB_PREFIX . MY_PREFIX . "my_table`\n\t\tSET `email` = '{$email}'\n\t\t"); print json_encode(array('success' => $lng['pool_sign_up_success'])); unset($_SESSION['restricted']);