This commit is contained in:
Alan
2026-02-14 19:34:54 +03:00
commit 5c3329238b
867 changed files with 214778 additions and 0 deletions

59
view/RegisterView.php Normal file
View 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');
}
}