Просмотр файла shcms/registration.php

Размер файла: 11.29Kb
  1. <?
  2. /*
  3. =============================================
  4. Движок: SHCMS Engine
  5. =============================================
  6. Название файла: Регистрация
  7. =============================================
  8. Official website: http://shcms.ru
  9. =============================================
  10. Данный код защищен авторскими правами
  11. =============================================
  12. */
  13.  
  14. define('SHCMS', true);
  15. include_once'../system/inc/basic_settings.php';
  16. if(isset($user_id))
  17. {
  18. header("Refresh:1; url=/index.php");
  19. exit();
  20. }
  21. if(!$settings_shcms['act_reg']){
  22. $shcmsengine['title'] = Lang::get('Регистрация отключена');
  23. }
  24. else {
  25. $shcmsengine['title'] = Lang::get('Регистрация нового пользователя');
  26. }
  27.  
  28. include_once'../template/head.php';
  29.  
  30. if (!$settings_shcms['act_reg']){
  31. errors(Lang::get('Регистрация временно отключена'));
  32. include_once'../template/foot.php';
  33. exit;
  34. }
  35. if(isset($user_id)) {
  36. header("Refresh: 1; url=/index.php");
  37. exit();
  38. }
  39.  
  40. /*
  41. ----------------------------
  42. Присваивание из Глобальных переменных $_POST в обычные
  43. ----------------------------
  44. */
  45. if(isset($_POST['login'])){
  46. $reg_login = $_POST['login'];
  47. }
  48. if(isset($_POST['submit'])){
  49. $submit = $_POST['submit'];
  50. }
  51. if(isset($_POST['password'])){
  52. $reg_password = $_POST['password'];
  53. }
  54. if(isset($_POST['password2'])){
  55. $reg_password2 = $_POST['password2'];
  56. }
  57. if(isset($_POST['email'])){
  58. $email = $_POST['email'];
  59. }
  60. if(isset($_POST['pol'])){
  61. $pol = $_POST['pol'] ? SHCMS_core::filtering(mb_substr(trim($_POST['pol']), 0, 2)):'';
  62. }
  63. if(isset($submit)) {
  64. $reg_login = stripslashes($reg_login);
  65. $reg_login = htmlspecialchars($reg_login);
  66. $reg_login = trim($reg_login);
  67. $reg_password = trim($reg_password);
  68. $reg_password2 = trim($reg_password2);
  69.  
  70. if(users::suspicion($reg_login)){
  71. mysql_query("INSERT INTO `users_doub` (`login`,`time`,`text`) VALUES ('$reg_login','".time()."','".Lang::get('Зачтен как подозрительный пользователь')."')");
  72. }
  73.  
  74.  
  75. //Обработка логина
  76. registration::reg_login($reg_login);
  77. //Обработка пороля
  78. registration::reg_password($reg_password,$reg_password2);
  79. //Обработка Email
  80. //Проверка введен или E-mail или нет
  81. if (!preg_match('#^[A-z0-9-\._]+@[A-z0-9]{2,}\.[A-z]{2,4}$#ui',$email))
  82. {
  83. errors(Lang::get('Введенный e-mail адрес неверный'));
  84. header("Refresh: 1; url=?");
  85. include_once '../template/foot.php';
  86. exit();
  87. }
  88. //Если введенный емаил уже есть в базе данных то выводит ошибку
  89. $reqmail = mysql_query("SELECT * FROM `users` WHERE `email`='" . mysql_real_escape_string($email) ."'");
  90. if (mysql_fetch_array($reqmail) != 0)
  91. {
  92. errors(Lang::get('Введенный e-mail адрес уже зарегестрирован.'));
  93. header("Refresh: 1; url=?");
  94. include_once '../template/foot.php';
  95. exit();
  96. }
  97. //Обработка капчи
  98. if($settings_shcms['captcha_reg'] == 1)
  99. {
  100. $antibot = isset($_POST['kod']) ? trim($_POST['kod']) : '';
  101. if (empty($antibot) || strlen($antibot) < 3)
  102. {
  103. errors(Lang::get('Код безопастности не введен!'));
  104. header('Refresh: 1; url=?' . $conservation . '&' );
  105. include_once'../template/foot.php';
  106. exit();
  107. }
  108. elseif ($antibot != $_SESSION['code'])
  109. {
  110. errors(Lang::get('Код безопасности не соответствует отображённому'));
  111. header('Refresh: 1; url=?' . $conservation . '&' );
  112. include_once'../template/foot.php';
  113. exit();
  114. }
  115. unset($_SESSION['code']);
  116. }
  117. /*
  118. * Зашита от регистраций
  119. */
  120. if($settings_shcms['limit_reg'] == 1) {
  121. $secure_ip = mysql_fetch_array(mysql_query("SELECT * FROM `users` ORDER BY `id` DESC"));
  122.  
  123. if(time() < $secure_ip['datereg'] + 400){
  124. echo '<div class="maintext">';
  125. errors(Lang::get('Включен лимит регистрации'));
  126. echo '</div>';
  127. echo '<div class="maintext">'.Lang::get('Следующяя регистрация будет доступна:').$timedate->times($secure_ip['datereg']+400).'</div>';
  128. exit;
  129. }
  130. }
  131.  
  132. if(isset($reg_login) && isset($reg_password))
  133. {
  134. $pass = md5(md5($reg_password));
  135. $ok_table = mysql_query("INSERT INTO `users` (`login`,`password`,`datereg`,`ip`,`email`,`pol`,`datelast`) VALUES ('$reg_login','$pass','".time()."','$vi_shcms','$email','$pol','$time_date')");
  136. if($ok_table == true)
  137. {
  138. $_SESSION['login'] = false;
  139. echo '<div class="maintitle mainrazd">'.Lang::get('Успешная регистрация').'</div>';
  140. echo '<div class="maintext">';
  141. echo '<div class="posts">';
  142. echo messag(Lang::get("Регистрация прошла успешно")).'<hr/>';
  143. echo '<a class="link_str" href="'.DIR_SHCMS.'authorization.php">'.Lang::get('Авторизация').'</a></div></div>';
  144. mails_listing::mails(Lang::get('Регистрация на %s Добро пожаловать.<br/>Мы рады видеть Вас на нашем сайте.',$_SERVER['HTTP_HOST']),time());
  145. include_once'../template/foot.php';
  146. exit();
  147. }
  148. else
  149. {
  150. errors(Lang::get('Возникла ошибка при регистрации'));
  151. }
  152. }
  153. }
  154. /*
  155. ----------------------------
  156. Форма для регистрации пользователя
  157. ----------------------------
  158. */
  159. echo Lang::get('<strong>Здравствуйте, уважаемый посетитель нашего сайта!</strong>');
  160. echo '<br/>';
  161. echo Lang::get('Регистрация на нашем сайте позволит Вам быть его полноценным участником.');
  162. echo '<br/><br/>';
  163. if($_POST['logins'] == false) {
  164. echo '<form id="reg-rules" action="?'.$conservation.'" method="post">';
  165. echo "
  166. <script language='javascript'>
  167. check_eula = function()
  168. {
  169. if( document.getElementById( 'rules' ).checked == true )
  170. {
  171. return true;
  172. }
  173. else
  174. {
  175. alert( '".Lang::get('Чтобы продолжить регистрацию вы должны соглашаться с условиями пользования')."' );
  176. return false;
  177. }
  178. }
  179. document.getElementById( 'reg-rules' ).onsubmit = check_eula;
  180. </script>
  181. ";
  182. echo '<strong>'.Lang::get('Логин:').'</strong> <small>[A-z 0-9 -_];</small><br/><input type="text" name="login" maxlength="20" value="'.$_SESSION['login'].'">';
  183. echo '<input type="submit" name="logins" value="'.Lang::get('Проверка логина').'"><br/>';
  184. }else {
  185. if(isset($_POST['logins'])) {
  186. $_SESSION['login'] = $reg_login;
  187. echo '<div class="maintitle mainrazd">'.Lang::get('Проверка Логина').'</div>';
  188. if(registration::pro_login($reg_login)){
  189. echo '<div class="maintext"> <font color="green">'.Lang::get('Ник <strong>%s</strong> доступен для регистрации',$reg_login).'</font><hr/>';
  190. echo '<a href="registration.php">'.Lang::get('Продолжить регистрацию').'</a>';
  191. include_once'../template/foot.php';
  192. exit;
  193. echo '</div>';
  194. }else {
  195. echo '<div class="maintext"> <font color="red">'.Lang::get('Выбранный ник <strong>%s</strong> недоступен или уже зарегестрирован на сайте',$reg_login).' </font></div>';
  196. }
  197. }
  198. echo '<form action="?'.$conservation.'" method="post">';
  199. echo '<strong>'.Lang::get('Логин:').'</strong> <small>[A-z 0-9 -_];</small><br/><input type="text" name="login" maxlength="20" value="'.$reg_login.'">';
  200. echo '<input type="submit" name="logins" value="'.Lang::get('Проверка логина').'"><br/>';
  201. echo '</form>';
  202. }
  203. echo '<strong>'.Lang::get('Пороль:').'</strong> <small>[5-30];</small><br/><input id="pass" type="text" maxlength="30" name="password" value="'.$reg_password.'"><br/>';
  204. echo '<strong>'.Lang::get('Еще раз пороль:').'</strong> <small>[5-30];</small><br/><input id="repass" type="text" maxlength="30" name="password2" value="'.$reg_password2.'">
  205. <a href="#" class="rootlink" onclick="getPass(\'pass\',\'repass\'); this.blur(); return false;">';
  206. echo SHCMS_core::img_shcms('../template/icon/refresh.png',Lang::get('Генерация пороля'));
  207. echo '</a><br/>';
  208. echo '<strong>'.Lang::get('E-mail адрес:').' </strong><br/><input type="text" name="email" maxlength="30" ><br/>';
  209. echo'<strong>'.Lang::get('Ваш пол:').'</strong><br/> <select name="pol">';
  210. echo '<option value="1"'.((isset($users_nav['pol']) and $users_nav['pol'] == 1)?" selected='selected'":null).'>'.Lang::get('Мужской').'</option>';
  211. echo '<option value="2"'.((isset($users_nav['pol']) and $users_nav['pol'] == 2)?" selected='selected'":null).'>'.Lang::get('Женский').'</option>';
  212. echo '</select><br/>';
  213.  
  214. if($settings_shcms['captcha_reg'] == 1)
  215. {
  216. echo '<script type="text/javascript">
  217. src="/shcms/antibot.php?r=rand(1000,9999)";
  218. function reload(){
  219. document.captcha.src="/shcms/antibot.php?r=rand(1000,9999)";
  220. document.captcha.src=src+"?rand="+Math.random(); } </script>';
  221. echo '<img name="captcha" class="midside" alt="'.Lang::get('Код безопастности').'" src="'.DIR_SHCMS.'antibot.php?r=' . rand(1000, 9999) . ' "/><br />';
  222. echo '<a href="javascript:void(0)" onclick="reload()">'.Lang::get('обновить, если не виден код').'</a><br/>';
  223. echo '<input type="text" style="width:115px" size="5" maxlength="5" name="kod"/><br/>';
  224. }
  225. echo '<input type="checkbox" name="rules" id="rules"/>'.Lang::get('<strong>Я прочитал и соглашаюсь с</strong> <a href="../rules.php">Условия использования</a>').'<br/>';
  226. if (mysql_num_rows($req) != 0)
  227. {
  228. echo '<input type="submit" value="'.Lang::get('Смена логина').'">';
  229. }
  230. else
  231. {
  232. echo '<input type="submit" name="submit" value="'.Lang::get('Регистрация').'">';
  233. }
  234. echo '</form>';
  235. echo Lang::get('<small>* В логине доступны только английские символы.</small><br/>');
  236. echo Lang::get('<small>* Вы должны использовать сложный пароль, содержащий не менее 3 и не более 30 символов</small><br/>');
  237.  
  238.  
  239. include_once'../template/foot.php';
  240. ?>