Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- require_once("include/bittorrent.php");
- dbconn();
- global $use_email_act, $regWaitTime, $default_theme;
- if ($deny_signup && !$allow_invite_signup)
- stderr($tracker_lang['error'], "Извините, но регистрация отключена администрацией.");
- if ($CURUSER)
- stderr($tracker_lang['error'], sprintf($tracker_lang['signup_already_registered'], $SITENAME));
- $users = get_row_count("users");
- if ($users >= $maxusers)
- stderr($tracker_lang['error'], sprintf($tracker_lang['signup_users_limit'], number_format($maxusers)));
- if (!mkglobal("wantusername:wantpassword:passagain:email"))
- stderr($tracker_lang['error'], "Прямой доступ к этому файлу не разрешен.");
- if ($deny_signup && $allow_invite_signup) {
- if (empty($_POST["invite"]))
- stderr("Ошибка", "Для регистрации вам нужно ввести код приглашения!");
- if (strlen($_POST["invite"]) != 32)
- stderr("Ошибка", "Вы ввели не правильный код приглашения.");
- list($inviter) = mysql_fetch_row(sql_query("SELECT inviter FROM invites WHERE invite = " . sqlesc($_POST["invite"])));
- if (!$inviter)
- stderr("Ошибка", "Код приглашения введенный вами не рабочий.");
- list($invitedroot) = mysql_fetch_row(sql_query("SELECT invitedroot FROM users WHERE id = $inviter"));
- }
- function bark($msg) {
- global $tracker_lang;
- stdhead();
- stdmsg($tracker_lang['error'], $msg, 'error');
- stdfoot();
- exit;
- }
- function validusername($username) {
- if ($username == "")
- return false;
- // The following characters are allowed in user names
- ///$allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_".
- // "абвгдеёжзиклмнопрстуфхшцщэюяьъАБВГДЕЁЖЗИКЛМНОПРСТУФХШЦЩЭЮЯЬЪ";
- $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.";
- for ($i = 0; $i < strlen($username); ++$i)
- if (strpos($allowedchars, $username[$i]) === false)
- return false;
- return true;
- }
- $gender = $_POST["gender"];
- $website = $_POST["website"];
- $country = $_POST["country"];
- $year = $_POST["year"];
- $month = $_POST["month"];
- $day = $_POST["day"];
- $ip = getip();
- //if (!validip($ip))
- // bark("Извините. Трекер пока что только для пользователей Триона");
- $userType = 'other';
- if (validip($ip))
- $userType = 'trion';
- $icq = unesc($_POST["icq"]);
- if (strlen($icq) > 10)
- bark("Жаль, Номер icq слишком длинный (Макс - 10)");
- /* $secret_q = unesc($_POST["secret_q"]);
- if (!$secret_q)
- bark("Вы должны ввести секретный вопрос");
- $secret_a = unesc($_POST["secret_a"]);
- if (!$secret_a)
- bark("Вы должны ввести ответ на секретный вопрос"); */
- $skype = unesc($_POST["skype"]);
- if (strlen($skype) > 20)
- bark("Жаль, Ваш skype слишком длинный (Макс - 20)");
- if (empty($wantusername) || empty($wantpassword) || empty($email) || empty($gender) || empty($country))
- bark("Все поля обязательны для заполнения.");
- if (strlen($wantusername) > 12)
- bark("Извините, имя пользователя слишком длинное (максимум 12 символов)");
- if ($wantpassword != $passagain)
- bark("Пароли не совпадают! Похоже вы ошиблись. Попробуйте еще.");
- if (strlen($wantpassword) < 6)
- bark("Извините, пароль слишком коротки (минимум 6 символов)");
- if (strlen($wantpassword) > 40)
- bark("Извините, пароль слишком длинный (максимум 40 символов)");
- if ($wantpassword == $wantusername)
- bark("Извините, пароль не может быть такой-же как имя пользователя.");
- if (!validemail($email))
- bark("Это не похоже на реальный email адрес.");
- if (!validusername($wantusername))
- bark("Неверное имя пользователя. Русские символы в нике запрещены или ник содержит запрещенные символы.");
- if (strlen($wantusername) < 3)
- bark("Жаль, Ваш ник слишком которкий (Мин - 3 символа)");
- if ($year == '0000' || $month == '00' || $day == '00')
- stderr($tracker_lang['error'], "Похоже вы указали неверную дату рождения");
- $birthday = date("$year.$month.$day");
- // make sure user agrees to everything...
- if ($_POST["rulesverify"] != "yes" || $_POST["faqverify"] != "yes" || $_POST["ageverify"] != "yes")
- stderr($tracker_lang['error'], "Извините, вы не подходите для того что-бы стать членом этого сайта. Проверьте, что заполнили все поля и отметили все пункты.");
- $timeToWait = makeTime($regWaitTime);
- // check if user have been registered but not been confirmed
- $res = sql_query("SELECT id, email, status FROM users WHERE email = " . sqlesc($email)) or sqlerr(__FILE__, __LINE__);
- $a = mysql_fetch_assoc($res);
- if ($a['status'] == 'pending')
- bark("Акканунт на этот e-mail уже зарегистрирован, но еще не активирован. Дождитесь письма активации. Если он не будет активирован через $timeToWait часов, он будет удален и вы сможете перерегистрироваться заново.");
- // check if email addy is already in use
- $a = (@mysql_fetch_row(@sql_query("SELECT COUNT(*) FROM users WHERE email=" . sqlesc($email)))) or die(mysql_error());
- if ($a[0] != 0)
- bark("E-mail адрес $email уже зарегистрирован в системе.");
- if ($use_captcha) {
- $b = get_row_count("captcha", "WHERE imagehash = " . sqlesc($_POST["imagehash"]) . " AND imagestring = " . sqlesc($_POST["imagestring"]));
- sql_query("DELETE FROM captcha WHERE imagehash = " . sqlesc($_POST["imagehash"])) or die(mysql_error());
- if ($b == 0)
- bark("Вы ввели неправильный код подтверждения.");
- }
- $res1 = sql_query("SELECT id FROM users WHERE ip = " . sqlesc($ip)) or sqlerr(__FILE__, __LINE__);
- $num = mysql_num_rows($res1);
- if ($num > 1)
- if ($userType == 'trion')
- bark("Регистрация невозможна! На один IP-адрес разрешено иметь только два аккаунта. Если Вы хотите зарегистрировать доп. аккаунт - обращайтесь с просьбой к администрации с указанием причины.");
- if (isset($_COOKIE["uid"]) && is_numeric($_COOKIE["uid"]) && $users) {
- $cid = intval($_COOKIE["uid"]);
- $c = sql_query("SELECT enabled FROM users WHERE id = $cid ORDER BY id DESC LIMIT 1");
- $co = @mysql_fetch_row($c);
- if ($co[0] == 'no') {
- sql_query("UPDATE users SET ip = '$ip', last_access = NOW() WHERE id = $cid");
- bark("Ваш один аккаунт отключен на этом трекере. Регистрация невозможна. Почистите кукисы своего браузера или попробуйте зарегистрироваться с другого браузера");
- } else {
- //сбросить кук
- setcookie("uid", '', '', "/");
- bark("Регистрация невозможна! Вы на данный момент активный пользователь ТТТ. Выйдите со своего аккаунта,почистите кукисы своего браузера или попробуйте зарегистрироваться с другого браузера");
- }
- } else {
- /* $b = (@mysql_fetch_row(@sql_query("SELECT enabled, id FROM users WHERE ip LIKE '$ip' ORDER BY last_access DESC LIMIT 1")));
- if ($b[0] == 'no') {
- $banned_id = $b[1];
- setcookie("uid", $banned_id, "0x7fffffff", "/");
- bark("Ваш IP забанен на этом трекере. Регистрация невозможна.");
- } */
- }
- $secret = mksecret();
- $wantpasshash = md5($secret . $wantpassword . $secret);
- $editsecret = (!$users ? "" : mksecret());
- if ((!$users) || (!$use_email_act == 1))
- $status = 'confirmed';
- else
- $status = 'pending';
- $tempname1 = mb_strtoupper($wantusername); //переводим имя в верх. регистр
- $res2 = sql_query("SELECT username FROM users ") or sqlerr(__FILE__, __LINE__);
- while ($row2 = mysql_fetch_array($res2)) {
- $tempname2 = mb_strtoupper($row2["username"]);
- $check1 = strcmp($tempname1, $tempname2);
- if ($check1 == 0)
- bark("Пользователь $wantusername уже зарегистрирован!");
- }
- sql_query("INSERT INTO users (username, passhash, secret, editsecret, gender, country, icq, skype, email, uploaded, status, class, added, birthday, invitedby, invitedroot, theme, torrentsperpage) VALUES (" .
- implode(",", array_map("sqlesc", array($wantusername, $wantpasshash, $secret, $editsecret, $gender, $country, $icq, $skype, $email, 2147483648, $status))) .
- ", " . (!$users ? UC_SYSOP . ", " : "0, ") . "'" . get_date_time() . "', '$birthday', '$inviter', '$invitedroot', '$default_theme', 20)") or sqlerr(__FILE__, __LINE__);
- $id = mysql_insert_id();
- write_log("Зарегистрирован новый пользователь $wantusername", "FFFFFF", "tracker");
- $res = sql_query("SELECT id, passkey, username, passhash,email FROM users WHERE username = '$wantusername'") or sqlerr(__FILE__, __LINE__);
- $row = mysql_fetch_array($res);
- $aaa = $row['id'];
- /*
- sql_query("INSERT INTO passrecover (uid, question, answer) VALUES(".$aaa.", '".$secret_q."', '".$secret_a."');");
- if (strlen($row['passkey']) != 32) {
- $row['passkey'] = md5($row['username'].get_date_time().$row['passhash']);
- sql_query("UPDATE users SET passkey='$row[passkey]' WHERE id=$row[id]");
- }
- */
- $sec = mksecret();
- $hash = md5($sec . $email . $row["passhash"] . $sec);
- $body = <<<EOD
- Вы зарегистрировались на $SITENAME и указали этот адрес как обрытный ($email).
- Если это были не вы, пожалуста проигнорируйте это письмо. Персона которая ввела ваш E-Mail адресс имеет IP адрес {$_SERVER["REMOTE_ADDR"]}. Пожалуста, не отвечайте.
- Для подтверждения вашей регистрации, вам нужно пройти по следующей ссылке:
- $DEFAULTBASEURL/confirm.php?id=$id&secret=$hash
- После того как вы это сделаете, вы сможете использовать ваш аккаунт. Если вы этого не сделаете, ваш новый аккаунт будет удален через $timeToWait часов.
- Мы рекомендуем вам прочитать правила и ЧаВо прежде чем вы начнете использовать $SITENAME.
- EOD;
- if ($use_email_act == 1 && $users) {
- /* if (!@sendConfirmationMail($email,$mailData['regTitle'],$mailData['regSubject'],$body)) {
- sql_query("DELETE FROM users WHERE id='$aaa'");
- stderr($tracker_lang['error'], "Невозможно отправить E-Mail. Попробуйте позже");
- } */
- try {
- $regMail = new MailRegistration($email, '', '', $body);
- $regMail->sendConfirmationMail();
- } catch (Exception $e) {
- sql_query("DELETE FROM users WHERE id='$aaa'");
- stderr($tracker_lang['error'], "Невозможно отправить E-Mail. Попробуйте позже");
- }
- $ip = getip();
- $time = time() + $regWaitTime; //1/2 day
- sql_query("INSERT INTO recovers (userId, secretKey, ip, time, mail, type) VALUES ('$aaa', '$hash','$ip','$time','$email', '2')");
- }
- sql_query("INSERT INTO pass_hack (`ip`,`count`, `type`) values ('" . getip() . "',1,2)");
- //logincookie($id, $wantpasshash);
- //header("Refresh: 0; url=ok.php?type=". (!$users?"sysop":("signup&email=" . urlencode($email))));
- $msg = sqlesc("Спасибо за регистрацию. Пожалуйста ознакомьтесь с правилами ресурса и просмотрите раздел [url=/faq.php][b]Часто Задаваемых Вопросов[/b][/url] (ЧАВО или FAQ) на нашем форуме.");
- $subject = sqlesc("Спасибо за регистрацию");
- $save = sqlesc("no");
- $now = sqlesc(get_date_time());
- sql_query("INSERT INTO messages (poster, sender, receiver, added, msg, subject, saved, location) VALUES(0, 0, " . sqlesc($id) . ", '" . get_date_time() . "', " . sqlesc($msg) . ", " . sqlesc($subject) . ", " . sqlesc($save) . ", 1)") or sqlerr(__FILE__, __LINE__);
- stderr2("Информационное сообщение. Успешная регистрация пользователя: $row[username] c e-mail: $email", "Вы успешно зарегистрировались. Для того, чтобы использовать наш ресурс Вы должны активировать свой аккаунт. На адрес указанной вами эл. почты был выслан e-mail для подтверждения регистрации. После подтверждения вы можете зайти на ресурс используя свой логин и пароль указанные Вами при регистрации");
- print("<meta http-equiv=\"refresh\" content=\"15; URL=login.php\">");
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement