Init
This commit is contained in:
59
view/RegisterView.php
Normal file
59
view/RegisterView.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?PHP
|
||||
|
||||
require_once('View.php');
|
||||
|
||||
class RegisterView extends View
|
||||
{
|
||||
function fetch()
|
||||
{
|
||||
$default_status = 1; // Активен ли пользователь сразу после регистрации (0 или 1)
|
||||
|
||||
if($this->request->method('post') && $this->request->post('register'))
|
||||
{
|
||||
$name = $this->request->post('name');
|
||||
$email = $this->request->post('email');
|
||||
$password = $this->request->post('password');
|
||||
$captcha_code = $this->request->post('captcha_code');
|
||||
$recaptcha = $this->request->post('recaptcha_response');
|
||||
$recaptchaIsValid = false;
|
||||
|
||||
if (!empty($recaptcha)) {
|
||||
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
|
||||
$recaptcha_secret = '6LegdywdAAAAAJaQLxIlHnITncRtuHQu-HHxeAYG';
|
||||
$recaptcha_response = $_POST['recaptcha_response'];
|
||||
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
|
||||
$recaptcha = json_decode($recaptcha);
|
||||
$recaptchaIsValid = $recaptcha->score >= 0.7;
|
||||
}
|
||||
|
||||
$this->design->assign('name', $name);
|
||||
$this->design->assign('email', $email);
|
||||
|
||||
$this->db->query('SELECT count(*) as count FROM __users WHERE email=?', $email);
|
||||
$user_exists = $this->db->result('count');
|
||||
|
||||
if($user_exists)
|
||||
$this->design->assign('error', 'user_exists');
|
||||
elseif(empty($name))
|
||||
$this->design->assign('error', 'empty_name');
|
||||
elseif(empty($email))
|
||||
$this->design->assign('error', 'empty_email');
|
||||
elseif(empty($password))
|
||||
$this->design->assign('error', 'empty_password');
|
||||
elseif (empty($recaptcha) || !$recaptchaIsValid) {
|
||||
$this->design->assign('error', 'recaptcha');
|
||||
}
|
||||
elseif($user_id = $this->users->add_user(array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>$default_status, 'last_ip'=>$_SERVER['REMOTE_ADDR'])))
|
||||
{
|
||||
$_SESSION['user_id'] = $user_id;
|
||||
if(!empty($_SESSION['last_visited_page']))
|
||||
header('Location: '.$_SESSION['last_visited_page']);
|
||||
else
|
||||
header('Location: '.$this->config->root_url);
|
||||
}
|
||||
else
|
||||
$this->design->assign('error', 'unknown error');
|
||||
}
|
||||
return $this->design->fetch('register.tpl');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user