$errors[] = lang("ACCOUNT_EMAIL_MISMATCH"); } elseif (!isValidemail($email)) { $errors[] = lang("ACCOUNT_INVALID_EMAIL"); } if (is_null($zip) && is_null($city)) { $errors[] = lang("ACCOUNT_NEED_LOCATION"); } //End data validation if (count($errors) == 0) { //Construct a user auth object $auth = new RedcapAuth($username, NULL, $email, $fname, $lname, $zip, $city, $state, $actualage); //Checking this flag tells us whether there were any errors such as possible data duplication occured if ($auth->emailExists()) { $tempu = getUserByEmail($email); $olduser = new RedcapPortalUser($tempu->user_id); if ($olduser->isActive()) { //CURRENT ACCOUNT + ACTIVE (LINK ALREADY CLICKED) $errors[] = lang("ACCOUNT_EMAIL_IN_USE_ACTIVE", array($email)); } else { //CURRENT ACCOUTN NOT ACTIVE if ($oldenough && $nextyear && $optin && $actualage >= 18) { //WAS FORMERLY INELIGIBLE NOW ELIGIBLE, SEND ACTIVATION LINK $errors[] = lang("ACCOUNT_NEW_ACTIVATION_SENT", array($email)); //SEND NEW ACTIVATION LINK $olduser->updateUser(array(getRF("zip") => $zip, getRF("city") => $city, getRF("state") => $state, getRF("age") => $actualage)); $olduser->createEmailToken(); $olduser->emailEmailToken(); //CLEAN UP unset($fname, $lname, $email, $zip, $city); } else { //WAS FORMERLY AND STILL IS INELIGIBLE