//require_once( ABSPATH . 'includes/errors.php' ); require_once ABSPATH . 'db_config.php'; require_once ABSPATH . 'includes/autoload.php'; $db = new MySQLidb(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, DB_PORT); $param = array(); $param['nopass']['x'] = 176; $param['nopass']['y'] = 100; $param['nopass']['width'] = 100; $param['nopass']['bg_path'] = ABSPATH . 'img/k_bg.png'; $param['pass']['x'] = 167; $param['pass']['y'] = 93; $param['pass']['width'] = 118; $param['pass']['bg_path'] = ABSPATH . 'img/k_bg_pass.png'; $rsa = new Crypt_RSA(); extract($rsa->createKey(2048)); $publickey = clear_public_key($publickey); $priv = $rsa->_parseKey($privatekey, CRYPT_RSA_PRIVATE_FORMAT_PKCS1); if (!empty($_REQUEST['password'])) { $aes = new Crypt_AES(CRYPT_AES_MODE_ECB); $aes->setKey(md5($_REQUEST['password'])); $text = $privatekey; $aes_encr = $aes->encrypt($text); $private_key = chunk_split(base64_encode($aes_encr), 64); $param = $param['pass']; $k_bg_path = ABSPATH . 'img/k_bg.png'; } else { $private_key = str_replace(array('-----BEGIN RSA PRIVATE KEY-----', '-----END RSA PRIVATE KEY-----'), '', $privatekey); $param = $param['nopass']; } $iPod = stripos($_SERVER['HTTP_USER_AGENT'], "iPod"); $iPhone = stripos($_SERVER['HTTP_USER_AGENT'], "iPhone");
$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']);