· 8 years ago · Jul 20, 2017, 08:52 PM
1<?
2
3require_once("include/bittorrent.php");
4dbconn();
5global $use_email_act, $regWaitTime, $default_theme;
6
7if ($deny_signup && !$allow_invite_signup)
8 stderr($tracker_lang['error'], "Извините, но региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð° админиÑтрацией.");
9
10if ($CURUSER)
11 stderr($tracker_lang['error'], sprintf($tracker_lang['signup_already_registered'], $SITENAME));
12
13$users = get_row_count("users");
14if ($users >= $maxusers)
15 stderr($tracker_lang['error'], sprintf($tracker_lang['signup_users_limit'], number_format($maxusers)));
16
17if (!mkglobal("wantusername:wantpassword:passagain:email"))
18 stderr($tracker_lang['error'], "ПрÑмой доÑтуп к Ñтому файлу не разрешен.");
19
20if ($deny_signup && $allow_invite_signup) {
21 if (empty($_POST["invite"]))
22 stderr("Ошибка", "Ð”Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрации вам нужно ввеÑти код приглашениÑ!");
23 if (strlen($_POST["invite"]) != 32)
24 stderr("Ошибка", "Ð’Ñ‹ ввели не правильный код приглашениÑ.");
25 list($inviter) = mysql_fetch_row(sql_query("SELECT inviter FROM invites WHERE invite = " . sqlesc($_POST["invite"])));
26 if (!$inviter)
27 stderr("Ошибка", "Код Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ‹Ð¹ вами не рабочий.");
28 list($invitedroot) = mysql_fetch_row(sql_query("SELECT invitedroot FROM users WHERE id = $inviter"));
29}
30
31function bark($msg) {
32 global $tracker_lang;
33 stdhead();
34 stdmsg($tracker_lang['error'], $msg, 'error');
35 stdfoot();
36 exit;
37}
38
39function validusername($username) {
40 if ($username == "")
41 return false;
42
43 // The following characters are allowed in user names
44 ///$allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_".
45 // "абвгдеёжзиклмнопрÑтуфхшцщÑÑŽÑьъÐБВГДЕÐЖЗИКЛМÐОПРСТУФХШЦЩÐЮЯЬЪ";
46 $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.";
47
48 for ($i = 0; $i < strlen($username); ++$i)
49 if (strpos($allowedchars, $username[$i]) === false)
50 return false;
51
52 return true;
53}
54
55$gender = $_POST["gender"];
56$website = $_POST["website"];
57$country = $_POST["country"];
58$year = $_POST["year"];
59$month = $_POST["month"];
60$day = $_POST["day"];
61
62$ip = getip();
63//if (!validip($ip))
64// bark("Извините. Трекер пока что только Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ Триона");
65$userType = 'other';
66if (validip($ip))
67 $userType = 'trion';
68
69$icq = unesc($_POST["icq"]);
70if (strlen($icq) > 10)
71 bark("Жаль, Ðомер icq Ñлишком длинный (ÐœÐ°ÐºÑ - 10)");
72
73/* $secret_q = unesc($_POST["secret_q"]);
74 if (!$secret_q)
75 bark("Ð’Ñ‹ должны ввеÑти Ñекретный вопроÑ");
76
77 $secret_a = unesc($_POST["secret_a"]);
78 if (!$secret_a)
79 bark("Ð’Ñ‹ должны ввеÑти ответ на Ñекретный вопроÑ"); */
80
81
82$skype = unesc($_POST["skype"]);
83if (strlen($skype) > 20)
84 bark("Жаль, Ваш skype Ñлишком длинный (ÐœÐ°ÐºÑ - 20)");
85
86if (empty($wantusername) || empty($wantpassword) || empty($email) || empty($gender) || empty($country))
87 bark("Ð’Ñе Ð¿Ð¾Ð»Ñ Ð¾Ð±Ñзательны Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.");
88
89if (strlen($wantusername) > 12)
90 bark("Извините, Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñлишком длинное (макÑимум 12 Ñимволов)");
91
92if ($wantpassword != $passagain)
93 bark("Пароли не Ñовпадают! Похоже вы ошиблиÑÑŒ. Попробуйте еще.");
94
95if (strlen($wantpassword) < 6)
96 bark("Извините, пароль Ñлишком коротки (минимум 6 Ñимволов)");
97
98if (strlen($wantpassword) > 40)
99 bark("Извините, пароль Ñлишком длинный (макÑимум 40 Ñимволов)");
100
101if ($wantpassword == $wantusername)
102 bark("Извините, пароль не может быть такой-же как Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ.");
103
104if (!validemail($email))
105 bark("Ðто не похоже на реальный email адреÑ.");
106
107if (!validusername($wantusername))
108 bark("Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ. РуÑÑкие Ñимволы в нике запрещены или ник Ñодержит запрещенные Ñимволы.");
109
110if (strlen($wantusername) < 3)
111 bark("Жаль, Ваш ник Ñлишком которкий (Мин - 3 Ñимвола)");
112
113if ($year == '0000' || $month == '00' || $day == '00')
114 stderr($tracker_lang['error'], "Похоже вы указали неверную дату рождениÑ");
115$birthday = date("$year.$month.$day");
116
117// make sure user agrees to everything...
118if ($_POST["rulesverify"] != "yes" || $_POST["faqverify"] != "yes" || $_POST["ageverify"] != "yes")
119 stderr($tracker_lang['error'], "Извините, вы не подходите Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ что-бы Ñтать членом Ñтого Ñайта. Проверьте, что заполнили вÑе Ð¿Ð¾Ð»Ñ Ð¸ отметили вÑе пункты.");
120
121$timeToWait = makeTime($regWaitTime);
122// check if user have been registered but not been confirmed
123$res = sql_query("SELECT id, email, status FROM users WHERE email = " . sqlesc($email)) or sqlerr(__FILE__, __LINE__);
124$a = mysql_fetch_assoc($res);
125if ($a['status'] == 'pending')
126 bark("Ðкканунт на Ñтот e-mail уже зарегиÑтрирован, но еще не активирован. ДождитеÑÑŒ пиÑьма активации. ЕÑли он не будет активирован через $timeToWait чаÑов, он будет удален и вы Ñможете перерегиÑтрироватьÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾.");
127
128
129// check if email addy is already in use
130$a = (@mysql_fetch_row(@sql_query("SELECT COUNT(*) FROM users WHERE email=" . sqlesc($email)))) or die(mysql_error());
131if ($a[0] != 0)
132 bark("E-mail Ð°Ð´Ñ€ÐµÑ $email уже зарегиÑтрирован в ÑиÑтеме.");
133
134
135
136if ($use_captcha) {
137 $b = get_row_count("captcha", "WHERE imagehash = " . sqlesc($_POST["imagehash"]) . " AND imagestring = " . sqlesc($_POST["imagestring"]));
138 sql_query("DELETE FROM captcha WHERE imagehash = " . sqlesc($_POST["imagehash"])) or die(mysql_error());
139 if ($b == 0)
140 bark("Ð’Ñ‹ ввели неправильный код подтверждениÑ.");
141}
142
143
144$res1 = sql_query("SELECT id FROM users WHERE ip = " . sqlesc($ip)) or sqlerr(__FILE__, __LINE__);
145$num = mysql_num_rows($res1);
146if ($num > 1)
147 if ($userType == 'trion')
148 bark("РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°! Ðа один IP-Ð°Ð´Ñ€ÐµÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¾ иметь только два аккаунта. ЕÑли Ð’Ñ‹ хотите зарегиÑтрировать доп. аккаунт - обращайтеÑÑŒ Ñ Ð¿Ñ€Ð¾Ñьбой к админиÑтрации Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ причины.");
149
150
151if (isset($_COOKIE["uid"]) && is_numeric($_COOKIE["uid"]) && $users) {
152 $cid = intval($_COOKIE["uid"]);
153 $c = sql_query("SELECT enabled FROM users WHERE id = $cid ORDER BY id DESC LIMIT 1");
154 $co = @mysql_fetch_row($c);
155 if ($co[0] == 'no') {
156 sql_query("UPDATE users SET ip = '$ip', last_access = NOW() WHERE id = $cid");
157 bark("Ваш один аккаунт отключен на Ñтом трекере. РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°. ПочиÑтите кукиÑÑ‹ Ñвоего браузера или попробуйте зарегиÑтрироватьÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ браузера");
158 } else {
159 //ÑброÑить кук
160 setcookie("uid", '', '', "/");
161 bark("РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°! Ð’Ñ‹ на данный момент активный пользователь ТТТ. Выйдите Ñо Ñвоего аккаунта,почиÑтите кукиÑÑ‹ Ñвоего браузера или попробуйте зарегиÑтрироватьÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ браузера");
162 }
163} else {
164 /* $b = (@mysql_fetch_row(@sql_query("SELECT enabled, id FROM users WHERE ip LIKE '$ip' ORDER BY last_access DESC LIMIT 1")));
165 if ($b[0] == 'no') {
166 $banned_id = $b[1];
167 setcookie("uid", $banned_id, "0x7fffffff", "/");
168 bark("Ваш IP забанен на Ñтом трекере. РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°.");
169 } */
170}
171$secret = mksecret();
172$wantpasshash = md5($secret . $wantpassword . $secret);
173$editsecret = (!$users ? "" : mksecret());
174if ((!$users) || (!$use_email_act == 1))
175 $status = 'confirmed';
176else
177 $status = 'pending';
178
179
180
181$tempname1 = mb_strtoupper($wantusername); //переводим Ð¸Ð¼Ñ Ð² верх. региÑтр
182$res2 = sql_query("SELECT username FROM users ") or sqlerr(__FILE__, __LINE__);
183while ($row2 = mysql_fetch_array($res2)) {
184 $tempname2 = mb_strtoupper($row2["username"]);
185 $check1 = strcmp($tempname1, $tempname2);
186 if ($check1 == 0)
187 bark("Пользователь $wantusername уже зарегиÑтрирован!");
188}
189sql_query("INSERT INTO users (username, passhash, secret, editsecret, gender, country, icq, skype, email, uploaded, status, class, added, birthday, invitedby, invitedroot, theme, torrentsperpage) VALUES (" .
190 implode(",", array_map("sqlesc", array($wantusername, $wantpasshash, $secret, $editsecret, $gender, $country, $icq, $skype, $email, 2147483648, $status))) .
191 ", " . (!$users ? UC_SYSOP . ", " : "0, ") . "'" . get_date_time() . "', '$birthday', '$inviter', '$invitedroot', '$default_theme', 20)") or sqlerr(__FILE__, __LINE__);
192
193$id = mysql_insert_id();
194write_log("ЗарегиÑтрирован новый пользователь $wantusername", "FFFFFF", "tracker");
195$res = sql_query("SELECT id, passkey, username, passhash,email FROM users WHERE username = '$wantusername'") or sqlerr(__FILE__, __LINE__);
196$row = mysql_fetch_array($res);
197$aaa = $row['id'];
198/*
199 sql_query("INSERT INTO passrecover (uid, question, answer) VALUES(".$aaa.", '".$secret_q."', '".$secret_a."');");
200
201 if (strlen($row['passkey']) != 32) {
202 $row['passkey'] = md5($row['username'].get_date_time().$row['passhash']);
203 sql_query("UPDATE users SET passkey='$row[passkey]' WHERE id=$row[id]");
204 }
205 */
206$sec = mksecret();
207$hash = md5($sec . $email . $row["passhash"] . $sec);
208
209$body = <<<EOD
210Ð’Ñ‹ зарегиÑтрировалиÑÑŒ на $SITENAME и указали Ñтот Ð°Ð´Ñ€ÐµÑ ÐºÐ°Ðº обрытный ($email).
211
212ЕÑли Ñто были не вы, пожалуÑта проигнорируйте Ñто пиÑьмо. ПерÑона ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð²ÐµÐ»Ð° ваш E-Mail адреÑÑ Ð¸Ð¼ÐµÐµÑ‚ IP Ð°Ð´Ñ€ÐµÑ {$_SERVER["REMOTE_ADDR"]}. ПожалуÑта, не отвечайте.
213
214Ð”Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐµÐ¹ региÑтрации, вам нужно пройти по Ñледующей ÑÑылке:
215
216 $DEFAULTBASEURL/confirm.php?id=$id&secret=$hash
217
218ПоÑле того как вы Ñто Ñделаете, вы Ñможете иÑпользовать ваш аккаунт. ЕÑли вы Ñтого не Ñделаете, ваш новый аккаунт будет удален через $timeToWait чаÑов.
219Мы рекомендуем вам прочитать правила и ЧаВо прежде чем вы начнете иÑпользовать $SITENAME.
220EOD;
221
222if ($use_email_act == 1 && $users) {
223 /* if (!@sendConfirmationMail($email,$mailData['regTitle'],$mailData['regSubject'],$body)) {
224 sql_query("DELETE FROM users WHERE id='$aaa'");
225 stderr($tracker_lang['error'], "Ðевозможно отправить E-Mail. Попробуйте позже");
226 } */
227 try {
228 $regMail = new MailRegistration($email, '', '', $body);
229 $regMail->sendConfirmationMail();
230 } catch (Exception $e) {
231 sql_query("DELETE FROM users WHERE id='$aaa'");
232 stderr($tracker_lang['error'], "Ðевозможно отправить E-Mail. Попробуйте позже");
233 }
234 $ip = getip();
235 $time = time() + $regWaitTime; //1/2 day
236 sql_query("INSERT INTO recovers (userId, secretKey, ip, time, mail, type) VALUES ('$aaa', '$hash','$ip','$time','$email', '2')");
237}
238sql_query("INSERT INTO pass_hack (`ip`,`count`, `type`) values ('" . getip() . "',1,2)");
239//logincookie($id, $wantpasshash);
240//header("Refresh: 0; url=ok.php?type=". (!$users?"sysop":("signup&email=" . urlencode($email))));
241
242$msg = sqlesc("СпаÑибо за региÑтрацию. ПожалуйÑта ознакомьтеÑÑŒ Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼Ð¸ реÑурÑа и проÑмотрите раздел [url=/faq.php][b]ЧаÑто Задаваемых ВопроÑов[/b][/url] (ЧÐВО или FAQ) на нашем форуме.");
243$subject = sqlesc("СпаÑибо за региÑтрацию");
244$save = sqlesc("no");
245$now = sqlesc(get_date_time());
246
247sql_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__);
248
249stderr2("Информационное Ñообщение. УÑÐ¿ÐµÑˆÐ½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: $row[username] c e-mail: $email", "Ð’Ñ‹ уÑпешно зарегиÑтрировалиÑÑŒ. Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы иÑпользовать наш реÑÑƒÑ€Ñ Ð’Ñ‹ должны активировать Ñвой аккаунт. Ðа Ð°Ð´Ñ€ÐµÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ вами Ñл. почты был выÑлан e-mail Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸Ñтрации. ПоÑле Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð²Ñ‹ можете зайти на реÑÑƒÑ€Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñвой логин и пароль указанные Вами при региÑтрации");
250print("<meta http-equiv=\"refresh\" content=\"15; URL=login.php\">");
251?>