/** * Function is used for registering new users. * It checks entered data, register new user and redirects to user's twitter wall. * User must enter security number to prevent robot attacks. */ public function action() { $main = new Main(); $main->setPageTitle("Sign up for TwitterApp"); $register = new \templates\Register(); $main->setBody($register); echo $main; if (post('register')) { $firstName = htmlentities(trim(post('fname'))); $lastName = htmlentities(trim(post('lname'))); $username = htmlentities(trim(post('username'))); $password = trim(post('password')); $hashedPassword = hash_password($password); $confirmedPassword = trim(post('cpassword')); $email = trim(post('email')); $userSecurityNumber = (int) trim(post('security')); //server-side validation $error = false; if (!ctype_alpha($firstName) || strlen($firstName) < 3 || strlen($firstName) > 25) { $error = true; } if (!ctype_alpha($lastName) || strlen($lastName) < 3 || strlen($lastName) > 25) { $error = true; } if (!ctype_alnum($username) || strlen($username) < 4 || strlen($lastName) > 25) { $error = true; } if (!ctype_alnum($password) || strlen($password) < 4 || strlen($password) > 25) { $error = true; } if (!ctype_alnum($confirmedPassword) || strlen($confirmedPassword) < 4 || strlen($confirmedPassword) > 25) { $error = true; } if ($userSecurityNumber < 1113 || $userSecurityNumber > 1207) { $error = true; } if ($password === $confirmedPassword && !$error) { $user = new User(); $user->setFirstName($firstName); $user->setLastName($lastName); $user->setUsername($username); $user->setPassword($hashedPassword); $user->setEmail($email); try { UserRepository::registerUser($user); } catch (\PDOException $e) { $e->getMessage(); } } } }
public function setEmail($email) { $this->_load(); return parent::setEmail($email); }
public function create() { if ($_POST['regPassword'] != $_POST['regPassword2']) { $this->addPopup('danger', 'Hesla se neshodují.'); redirectTo("/registrace"); } if (!User::checkRegistrationValidity()) { redirectTo("/registrace"); } $existing = User::checkExistingUsernameEmail(); if ($existing != NULL) { if ($existing->getUsername() == $_POST["regUsername"]) { $this->addPopup('danger', 'Uživatel se stejným uživatelským jménem je již zaregistrován.'); } elseif ($existing->getEmail() == $_POST["regEmail"]) { $this->addPopup('danger', 'Uživatel se stejnou emailovou adresou je již zaregistrován.'); } redirectTo("/registrace"); } else { $token = token(50); $user = new User(); $user->setIdImage(6); $user->setUsername(strip_tags($_POST['regUsername'])); $user->setPassword(strip_tags(sha1($_POST['regPassword']))); $user->setEmail(strip_tags($_POST['regEmail'])); $user->setUrl(strip_tags($_POST['regUsername'])); $user->setEmailConfirmToken($token); $user->setPasswordResetToken(NULL); $user->setPermissions(0); $user->setSigninCount(0); sendEmailConfirmationToken($user->getUsername(), $user->getEmailConfirmToken(), $user->getEmail()); $user->save(); $this->addPopup('success', 'Registrace proběhla úspěšně! Nyní se můžete přihlásit.'); redirectTo("/"); } }
protected function validateOne() { setContentType("json"); $user = new User(); $given = array_keys($_POST); $response["error"] = null; if (count($given) == 1) { if ($given[0] == "username") { $user->setUsername($_POST["username"]); } else { if ($given[0] == "password") { $user->setPassword($_POST["password"]); } else { if ($given[0] == "email") { $user->setEmail($_POST["email"]); } else { if ($given[0] == "name") { $user->setName($_POST["name"]); } else { if ($given[0] == "surname") { $user->setSurname($_POST["surname"]); } else { setHTTPStatusCode("400"); return; } } } } } if (!$user->validate()) { foreach ($user->getValidationFailures() as $failure) { if ($given[0] == $failure->getPropertyPath()) { $response["error"] = array("name" => $failure->getPropertyPath(), "message" => $failure->getMessage()); } } } $this->viewString(json_encode($response)); } else { setHTTPStatusCode("400"); } }