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'); } }