Просмотр файла modules/user/sign_up.php

Размер файла: 5.95Kb
  1. <?php
  2. /**********************************
  3. * @package: PerfCMS *
  4. * @year: 2012 *
  5. * @author: Artas *
  6. * @link: http://perfcms.pp.ua *
  7. **********************************/
  8. $page = 'reg';
  9. if(isset($user)) header('location: /');
  10. $title = $lang->word('sign_up');
  11. require_once(SYS .'/view/header.php');
  12. if($system['open_reg'] == 'no') {
  13. $tpl->div('menu', $lang->word('reg_closed'));
  14. echo '<div class="block">
  15. '. NAV .' <a href="/sign_in/">'.$lang->word('sign_in').'</a><br/>
  16. '. HICO .' <a href="/">'.$lang->word('home').'</a>
  17. </div>';
  18. require_once(SYS .'/view/footer.php');
  19. exit;
  20. }
  21. if (isset($_POST['user_reg'])) {
  22. $nick = htmlspecialchars(trim($_POST['nick']));
  23. $name = htmlspecialchars(trim($_POST['name']));
  24. $gender = substr(abs(intval($_POST['gender'])), 0, 1);
  25. $email = htmlspecialchars(trim($_POST['email']));
  26. $password = htmlspecialchars(trim($_POST['password']));
  27. $password2 = htmlspecialchars(trim($_POST['password2']));
  28. if (empty($nick)) $err .= $lang->word('no_nick').'<br />';
  29. if (empty($name)) $err .= $lang->word('no_name').'<br />';
  30. if (empty($email)) $err .= $lang->word('no_email').'<br />';
  31. if (empty($password)) $err .= $lang->word('no_pass').'<br />';
  32. if (empty($password2)) $err .= $lang->word('no_pass2').'<br />';
  33. if (!empty($nick) && (mb_strlen($nick, 'UTF-8') < 3 || mb_strlen($nick, 'UTF-8') > 32)) $err .= $lang->word('e_nick').'<br />';
  34. if (!empty($nick) && !preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $nick)) $err .= $lang->word('b_nick').'<br />';
  35. if (!empty($name) && (mb_strlen($name, 'UTF-8') > 32)) $err .= $lang->word('e_name').'<br />';
  36. if (!empty($email) && (mb_strlen($email, 'UTF-8') < 3 || mb_strlen($email, 'UTF-8') > 72)) $err .= $lang->word('b_mail').'<br />';
  37. if (!empty($email) && !preg_match('|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})$|ius', $email)) $err .= $lang->word('e_email').'<br />';
  38. if (!empty($password) && (mb_strlen($password, 'UTF-8') < 5 || mb_strlen($password, 'UTF-8') > 64)) $err .= $lang->word('e_pass').'<br />';
  39. if (!empty($password) && !empty($password2) && $password != $password2) $err .= $lang->word('e_pass2').'<br />';
  40. if($db->query("SELECT * FROM `users` WHERE `nick` = '$nick'")->rowCount() == 1) $err .= $lang->word('ex_nick').'<br/>';
  41. if($db->query("SELECT * FROM `users` WHERE `email` = '$email'")->rowCount() == 1) $err .= $lang->word('ex_mail').'<br/>';
  42. if($_SESSION['captcha'] != $_POST['captcha']) $err .= 'Captcha error<br/>';
  43. if (!isset($err)) {
  44. $password = crypto($password);
  45. $db->query("INSERT INTO `users` SET `name` = '". escape(trim($name)) ."', `nick` = '". escape(trim($nick)) ."', `password` = '". escape(trim($password)) ."', `reg_time` = '". time() ."', `time` = '". time() ."', `email` = '". escape(trim($email)) ."', `level` = '1', `gender` = '$gender', `device` = '', `icq` = '0', `phone` = '', `info` = '', `day` = '0', `month` = '0', `year` = '0', `interests` = '', `city` = '', `country` = '', `locate` = 'in_index', `ban_time` = '0', `ban_text` = '', `surname` = '', `site` = ''");
  46. // print_r($db->errorInfo());
  47. $language = $system['lang'];
  48. $db->query("INSERT INTO `settings` SET `user_id` = '". $db->lastInsertId() ."', `lang` = '". $language ."', `ames` = '10', `theme` = 'default', `web_theme` = 'default', `fast_mess` = 'no', `view_profile` = 'all', `show_email` = 'no', `timezone` = '". $system['timezone']."'");
  49. session_destroy();
  50. echo '<div class="title">'.$lang->word('sign_up').'</div>
  51. <div class="menu">
  52. '.$lang->word('end_r_t').'<br/>
  53. <a href="/sign_in/?nick='. $nick .'&amp;password='. $password2 .'">'.$lang->word('sign_in').'</a>
  54. </div>
  55. <div class="block">
  56. '. NAV .' <a href="/sign_in/">'.$lang->word('sign_in').'</a><br/>
  57. '. HICO .' <a href="/">'.$lang->word('home').'</a>
  58. </div> ';
  59. require_once(SYS .'/view/footer.php');
  60. exit();
  61. }
  62. }
  63. if (isset($err)) echo '<div class="error">'. $err .'</div>';
  64. echo '<form method="post" action="?">
  65. <div class="title">'.$lang->word('sign_up').'</div>
  66. <div class="menu">
  67. '.$lang->word('nick').':<br />
  68. <input type="text" name="nick" value="'. (isset($_POST['nick']) ? htmlspecialchars($_POST['nick']) : NULL) .'" /><br />
  69. '.$lang->word('name').':<br />
  70. <input type="text" name="name" value="'. (isset($_POST['name']) ? htmlspecialchars($_POST['name']) : NULL) .'" /><br />
  71. '.$lang->word('gender').':<br/>
  72. <select name="gender">
  73. <option value="1">'.$lang->word('male').'</option>
  74. <option value="2">'.$lang->word('female').'</option>
  75. </select><br/>
  76. E-Mail:<br />
  77. <input type="text" name="email" value="'. (isset($_POST['email']) ? htmlspecialchars($_POST['email']) : NULL) .'" /><br />
  78. '.$lang->word('password').':<br />
  79. <input type="password" name="password" /><br />
  80. '.$lang->word('password2').':<br />
  81. <input type="password" name="password2" /><br />
  82. '.$lang->word('enter_captcha').':<br />
  83. <script>
  84. function captcha_reload() {
  85. document.getElementById(\'captcha\').src = "/system/view/captcha.php?" + Math.random();
  86. }
  87. </script>
  88. <img id="captcha" src="'. URL .'/system/view/captcha.php" alt="captcha" /><br />
  89. <a href="javascript:captcha_reload();">'.$lang->word('refresh').'</a><br />
  90. <input type="text" name="captcha" size="6" /><br/>
  91. <input type="submit" name="user_reg" value="'.$lang->word('sign_up').'" />
  92. </div>
  93. </form>
  94. <div class="block">
  95. '. NAV .' <a href="/sign_in/">'.$lang->word('sign_in').'</a><br/>
  96. '. HICO .' <a href="/">'.$lang->word('home').'</a>
  97. </div>';
  98. require_once(SYS .'/view/footer.php');
  99. ?>