From 36ced79b9dfaeb4fcd3f5bc6e4d3fd2b25c19d2f Mon Sep 17 00:00:00 2001 From: marcus Date: Tue, 12 Aug 2008 13:28:55 +0000 Subject: Refs #229 : Register now has more granular messages, dupe email checkiong, sanitisation + fill in the blanks failure mode! (yay) git-svn-id: https://code.elgg.org/elgg/trunk@1855 36083f99-b078-4883-b0ff-0f9b5a30f544 --- actions/register.php | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) (limited to 'actions') diff --git a/actions/register.php b/actions/register.php index 43a653b3f..17b6fa169 100644 --- a/actions/register.php +++ b/actions/register.php @@ -29,27 +29,40 @@ if (!$CONFIG->disable_registration) { - // For now, just try and register the user - if ( - ( - (trim($password)!="") && - (strcmp($password, $password2)==0) - ) && - ($guid = register_user($username, $password, $name, $email)) - ) { - if (($guid) && ($admin)) - { - admin_gatekeeper(); // Only admins can make someone an admin - $new_user = get_entity($guid); - $new_user->admin = 'yes'; + // For now, just try and register the user + + try { + if ( + ( + (trim($password)!="") && + (strcmp($password, $password2)==0) + ) && + ($guid = register_user($username, $password, $name, $email)) + ) { + if (($guid) && ($admin)) + { + admin_gatekeeper(); // Only admins can make someone an admin + $new_user = get_entity($guid); + $new_user->admin = 'yes'; + } + + system_message(sprintf(elgg_echo("registerok"),$CONFIG->sitename)); + + forward(); // Forward on success, assume everything else is an error... + } else { + register_error(elgg_echo("registerbad")); } - - system_message(sprintf(elgg_echo("registerok"),$CONFIG->sitename)); - } else { - register_error(elgg_echo("registerbad")); + } catch (RegistrationException $r) { + register_error($r->getMessage()); } } else - register_error(elgg_echo('registerdisabled')); + register_error(elgg_echo('registerdisabled')); + + $qs = explode('?',$_SERVER['HTTP_REFERER']); + $qs = $qs[0]; + $qs .= "?u=" . urlencode($username) . "&e=" . urlencode($email) . "&n=" . urlencode($name); + + forward($qs); ?> \ No newline at end of file -- cgit v1.2.3