} else { $_REQUEST['email'] = $member_info['member_email']; } $data['member_first_name'] = $_REQUEST['first_name']; $data['member_last_name'] = $_REQUEST['last_name']; $data['member_interface'] = $_REQUEST['interface']; $data['member_grade'] = @$_REQUEST['grade_level']; // FIXME - add the admin role if appropriate/requested // $data['member_type'] = $request['type']; if (count($errors) == 0) { $status = mystery_update_query('portal_members', $data, 'member_id', $member_id, 'portal_dbh'); if ($status == 0) { $errors[] = 'Could not update member information'; } portal_update_cc_member_info($member_info['cc_member_id'], $member_info['member_username'], $_REQUEST['password'], $_REQUEST['first_name'], $_REQUEST['last_name'], $_REQUEST['email']); portal_update_diy_member_info(portal_get_diy_member_id_from_db($member_info['member_username']), $_REQUEST['first_name'], $_REQUEST['last_name'], $_REQUEST['email'], $_REQUEST['interface']); } if (count($errors) > 0) { echo portal_generate_error_page($errors); } else { if ($is_editing_self == 'yes') { // fix up the session information $_SESSION['user_first_name'] = $_REQUEST['first_name']; $_SESSION['user_last_name'] = $_REQUEST['last_name']; $_SESSION['portal']['member_interface'] = $_REQUEST['interface']; if (isset($_REQUEST['email'])) { $_SESSION['user_email'] = $_REQUEST['email']; } if ($_REQUEST['password'] != '') { $_SESSION['portal']['member_password_ue'] = $_REQUEST['password']; }
function portal_process_member_registration($request) { // this function will register a member in the portal global $_PORTAL; // look for an email address - if not specified, student or old school teacher, generate a unique one if (trim(@$request['email']) == '') { $request['email'] = 'no-email-' . uniqid(md5(rand()), true); } if ($request['first_name'] == '') { $_PORTAL['errors'][] = 'You must specify a First Name.'; } if ($request['last_name'] == '') { $_PORTAL['errors'][] = 'You must specify a First Name.'; } if ($request['password'] == '') { $_PORTAL['errors'][] = 'You must specify a Password.'; } if (strlen($request['password']) < 4 || strlen($request['password']) > 40) { $_PORTAL['errors'][] = 'Your password must be between 4 and 40 characters long.'; } if (count($_PORTAL['errors']) > 0) { return 0; } // Check to see if this member is already in our system. If so, bail out. $query = 'SELECT member_id FROM portal_members WHERE member_email = ?'; $params = array(@$request['email']); $results = mystery_select_query($query, $params, 'portal_dbh'); if (count($results) > 0) { $_PORTAL['errors'][] = 'A person has already registered in the system with that email address. Please try signing in instead. If you don\'t know your password, please contact <a href="mailto:webmaster@concord.org">webmaster@concord.org</a>.'; return 0; } else { // get a unique username for this user $request['username'] = portal_get_unique_username($request['first_name'], $request['last_name'], $request['email']); $_REQUEST['username'] = $request['username']; // allows us to display it to the user $fixed_username = strtolower($request['username']); $fixed_password_ue = strtolower($request['password']); $fixed_password = md5($fixed_password_ue); // maybe we need to add the portal record first so we can set up the username $cc_member_id = portal_get_cc_member_id($request['first_name'], $request['last_name'], $request['email'], $request['username'], $request['password']); // create the member in the ITSI DIY by creating a session portal_setup_diy_session($fixed_username, $fixed_password_ue); $diy_member_id = portal_get_diy_member_id_from_db($fixed_username); portal_update_diy_member_info($diy_member_id, $request['first_name'], $request['last_name'], $request['email'], $request['member_interface']); $sds_member_id = portal_get_sds_member_id_from_db($diy_member_id); // add the member to the portal database $data = array(); $data['member_username'] = $fixed_username; $data['member_password'] = $fixed_password; $data['member_password_ue'] = $request['password']; $data['member_first_name'] = $request['first_name']; $data['member_last_name'] = $request['last_name']; $data['member_email'] = $request['email']; $data['member_type'] = $request['type']; $data['member_school'] = $request['school_id']; $data['member_grade'] = @$request['grade_level']; $data['cc_member_id'] = $cc_member_id; $data['diy_member_id'] = $diy_member_id; $data['sds_member_id'] = $sds_member_id; $data['member_interface'] = $request['member_interface']; $data['member_source'] = @$request['source']; $data['creation_date'] = date('Y-m-d H:i:s'); $member_id = mystery_insert_query('portal_members', $data, 'member_id', 'portal_dbh'); if ($member_id < 1) { $_PORTAL['errors'][] = 'Could not create new member. Please contact <a href="mailto:webmaster@concord.org">webmaster@concord.org</a>'; } } return $member_id; }