X-Git-Url: https://projects.mako.cc/source/scuttle/blobdiff_plain/c7f63c8b9b12efd7b3c10b9f80cda06eaf32068f..refs/heads/long-descriptions:/register.php?ds=sidebyside diff --git a/register.php b/register.php index 62128db..e93c2ab 100644 --- a/register.php +++ b/register.php @@ -1,7 +1,6 @@ must enter a username, password and e-mail address.'); + elseif (!$posteduser || !$postedpass || !$postedmail) { + $tplVars['error'] = T_('You must enter a username, password and e-mail address.'); + } // Check if username is reserved - } elseif ($userservice->isReserved($posteduser)) { - $tplVars['error'] = T_('This username has been reserved, please make another choice.'); + elseif ($userservice->isReserved($posteduser)) { + $tplVars['error'] = T_('This username has been reserved, please make another choice.'); + } // Check if username already exists - } elseif ($userservice->getUserByUsername($posteduser)) { - $tplVars['error'] = T_('This username already exists, please make another choice.'); + elseif ($userservice->getUserByUsername($posteduser)) { + $tplVars['error'] = T_('This username already exists, please make another choice.'); + } + // Check that password is long enough + elseif ($postedpass != '' && strlen($postedpass) < 6) { + $tplVars['error'] = T_('Password must be at least 6 characters long.'); + } + + // Check if password matches confirmation + elseif ($postedpass != $postedconf) { + $tplVars['error'] = T_('Password and confirmation do not match.'); + } + + // Check if e-mail address is blocked + elseif ($userservice->isBlockedEmail($postedmail)) { + $tplVars['error'] = T_('This e-mail address is not permitted.'); + } + // Check if e-mail address is valid - } elseif (!$userservice->isValidEmail($_POST['email'])) { - $tplVars['error'] = T_('E-mail address is not valid. Please try again.'); + elseif (!$userservice->isValidEmail($postedmail)) { + $tplVars['error'] = T_('E-mail address is not valid. Please try again.'); + } // Register details - } elseif ($userservice->addUser($posteduser, $_POST['password'], $_POST['email'])) { - // Log in with new username - $login = $userservice->login($posteduser, $_POST['password']); - if ($login) { - header('Location: '. createURL('bookmarks', $posteduser)); - } - $tplVars['msg'] = T_('You have successfully registered. Enjoy!'); - } else { - $tplVars['error'] = T_('Registration failed. Please try again.'); + elseif ($userservice->addUser($posteduser, $_POST['password'], $postedmail)) { + // Log in with new username + $login = $userservice->login($posteduser, $_POST['password']); + if ($login) { + header('Location: '. createURL('bookmarks', $posteduser)); + } + $tplVars['msg'] = T_('You have successfully registered. Enjoy!'); } + else { + $tplVars['error'] = T_('Registration failed. Please try again.'); + } + } + else { + $tplVars['msg'] = T_('Woah there, go easy on the Register button! Your registration was successful. Check your e-mail for instructions on how to verify your account.'); + } } -$tplVars['loadjs'] = true; -$tplVars['subtitle'] = T_('Register'); -$tplVars['formaction'] = createURL('register'); +// Generate anti-CSRF token +$token = md5(uniqid(rand(), TRUE)); +$_SESSION['token'] = $token; +$_SESSION['token_time'] = time(); + +$tplVars['loadjs'] = TRUE; +$tplVars['subtitle'] = T_('Register'); +$tplVars['formaction'] = createURL('register'); +$tplVars['token'] = $token; $templateservice->loadTemplate('register.tpl', $tplVars);