Файл: modules/user/sign_up.php
Строк: 158
<?php
/**
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) 2013, Taras Chornyi, Sergiy Mazurenko, Ivan Kotliar
* @link http://perf-engine.net
* @package PerfEngine
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
$page = 'reg';
if(User::logged()) redirect('/');
if(isset($_COOKIE['register_time']))
{
redirect('http://localhost');
}
$title = _t('sign_up');
include_header($title);
if($system['open_reg'] == 0)
{
$tpl->div('menu', _t('reg_closed'));
echo '<div class="block">
'. NAV .' <a href="/user/sign_in">'._t('sign_in').'</a><br/>
'. HICO .' <a href="/">'._t('home').'</a>
</div>';
include_footer();
exit;
}
$err = false;
if (isset($_POST['user_reg']))
{
$nick = htmlspecialchars(trim($_POST['nick']));
$name = htmlspecialchars(trim($_POST['name']));
$gender = substr(abs(intval($_POST['gender'])), 0, 1);
$email = htmlspecialchars(trim($_POST['email']));
$password = htmlspecialchars(trim($_POST['password']));
$password2 = htmlspecialchars(trim($_POST['password2']));
if (empty($nick)) $err .= _t('no_nick').'<br />';
if (empty($name)) $err .= _t('no_name').'<br />';
if (empty($email)) $err .= _t('no_email').'<br />';
if (empty($password)) $err .= _t('no_pass').'<br />';
if (empty($password2)) $err .= _t('no_pass2').'<br />';
if (!empty($nick) && (mb_strlen($nick, 'UTF-8') < 3 || mb_strlen($nick, 'UTF-8') > 32)) $err .= _t('e_nick').'<br />';
if (!empty($nick) && !preg_match("#^([A-zА-я0-9-_ ])+$#ui", $nick) && preg_match("#bot#ui", $nick)) $err .= _t('b_nick').'<br />';
if (!empty($name) && (mb_strlen($name, 'UTF-8') > 32)) $err .= _t('e_name').'<br />';
if (!empty($email) && (mb_strlen($email, 'UTF-8') < 3 || mb_strlen($email, 'UTF-8') > 72)) $err .= _t('b_mail').'<br />';
if (!empty($email) && !preg_match('|^([a-z0-9_.-]{1,20})@([a-z0-9.-]{1,20}).([a-z]{2,4})$|ius', $email)) $err .= _t('e_email').'<br />';
if (!empty($password) && (mb_strlen($password, 'UTF-8') < 5 || mb_strlen($password, 'UTF-8') > 64)) $err .= _t('e_pass').'<br />';
if (!empty($password) && !empty($password2) && $password != $password2) $err .= _t('e_pass2').'<br />';
if($db->query("SELECT * FROM `users` WHERE `nick` = '$nick'")->rowCount() == 1) $err .= _t('ex_nick').'<br/>';
if($db->query("SELECT * FROM `users` WHERE `email` = '$email'")->rowCount() == 1) $err .= _t('ex_mail').'<br/>';
if($_SESSION['captcha'] !== $_POST['captcha']) $err .= 'Captcha error<br/>';
if ($err === false)
{
$password = crypto($password);
$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` = ''");
// print_r($db->errorInfo());
$language = Core::language();
$db->query("INSERT INTO `settings` SET `user_id` = '". $db->lastInsertId() ."', `lang` = '". $language ."', `ames` = '10', `theme` = 'default', `web_theme` = 'default', `fast_mess` = 1, `view_profile` = 'all', `show_email` = 'no', `timezone` = '". $system['timezone']."'");
@setcookie('register_time', time(), (time()+60*60*12));
echo '<div class="title">'._t('sign_up').'</div>
<div class="menu">
'._t('end_r_t').'<br/>
<a href="/user/sign_in?nick='. $nick .'&password='. $password2 .'">'._t('sign_in').'</a>
</div>
<div class="block">
'. NAV .' <a href="/user/sign_in">'._t('sign_in').'</a><br/>
'. HICO .' <a href="/">'._t('home').'</a>
</div> ';
include_footer();
exit();
}
}
if (isset($err) && $err !== false) echo '<div class="error">'. $err .'</div>';
echo '<form method="post" action="?">
<div class="title">'._t('sign_up').'</div>
<div class="menu">
'._t('nick').':<br />
<input type="text" name="nick" value="'. (isset($_POST['nick']) ? htmlspecialchars($_POST['nick']) : NULL) .'" /><br />
'._t('name').':<br />
<input type="text" name="name" value="'. (isset($_POST['name']) ? htmlspecialchars($_POST['name']) : NULL) .'" /><br />
'._t('gender').':<br/>
<select name="gender">
<option value="1">'._t('male').'</option>
<option value="2">'._t('female').'</option>
</select><br/>
E-Mail:<br />
<input type="text" name="email" value="'. (isset($_POST['email']) ? htmlspecialchars($_POST['email']) : NULL) .'" /><br />
'._t('password').':<br />
<input type="password" name="password" /><br />
'._t('password2').':<br />
<input type="password" name="password2" /><br />
'._t('enter_captcha').':<br />
<script>
function captcha_reload() {
document.getElementById('captcha').src = "/system/views/captcha.php?" + Math.random();
}
</script>
<img id="captcha" src="'. URL .'/system/views/captcha.php" alt="captcha" /><br />
<a href="javascript:captcha_reload();">'._t('refresh').'</a><br />
<input type="text" name="captcha" size="6" /><br/>
<input type="submit" name="user_reg" value="'._t('sign_up').'" />
</div>
</form>
<div class="block">
'. NAV .' <a href="/user/sign_in?">'._t('sign_in').'</a><br/>
'. HICO .' <a href="/">'._t('home').'</a>
</div>';
include_footer();
?>