qa_fatal_error('User login is handled by external code');
}
//	Check if we've been asked to send a new link or have a successful email confirmation
$incode = trim(qa_get('c'));
// trim to prevent passing in blank values to match uninitiated DB rows
$inhandle = qa_get('u');
$loginuserid = qa_get_logged_in_userid();
$useremailed = false;
$userconfirmed = false;
if (isset($loginuserid) && qa_clicked('dosendconfirm')) {
    // button clicked to send a link
    require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php';
    if (!qa_check_form_security_code('confirm', qa_post_text('code'))) {
        $pageerror = qa_lang_html('misc/form_security_again');
    } else {
        qa_send_new_confirm($loginuserid);
        $useremailed = true;
    }
} elseif (strlen($incode)) {
    // non-empty code detected from the URL
    require_once QA_INCLUDE_DIR . 'qa-db-selects.php';
    require_once QA_INCLUDE_DIR . 'qa-app-users-edit.php';
    if (!empty($inhandle)) {
        // match based on code and handle provided on URL
        $userinfo = qa_db_select_with_pending(qa_db_user_account_selectspec($inhandle, false));
        if (strtolower(trim(@$userinfo['emailcode'])) == strtolower($incode)) {
            qa_complete_confirm($userinfo['userid'], $userinfo['email'], $userinfo['handle']);
            $userconfirmed = true;
        }
    }
    if (!$userconfirmed && isset($loginuserid)) {
     $inprofile[$userfield['fieldid']] = qa_post_text('field_' . $userfield['fieldid']);
 }
 if (!qa_check_form_security_code('account', qa_post_text('code'))) {
     $errors['page'] = qa_lang_html('misc/form_security_again');
 } else {
     $errors = qa_handle_email_filter($inhandle, $inemail, $useraccount);
     if (!isset($errors['handle'])) {
         qa_db_user_set($userid, 'handle', $inhandle);
     }
     if (!isset($errors['email'])) {
         if ($inemail != $useraccount['email']) {
             qa_db_user_set($userid, 'email', $inemail);
             qa_db_user_set_flag($userid, QA_USER_FLAGS_EMAIL_CONFIRMED, false);
             $isconfirmed = false;
             if ($doconfirms) {
                 qa_send_new_confirm($userid);
             }
         }
     }
     if (qa_opt('allow_private_messages')) {
         qa_db_user_set_flag($userid, QA_USER_FLAGS_NO_MESSAGES, !$inmessages);
     }
     if (qa_opt('allow_user_walls')) {
         qa_db_user_set_flag($userid, QA_USER_FLAGS_NO_WALL_POSTS, !$inwallposts);
     }
     if (qa_opt('mailing_enabled')) {
         qa_db_user_set_flag($userid, QA_USER_FLAGS_NO_MAILINGS, !$inmailings);
     }
     qa_db_user_set_flag($userid, QA_USER_FLAGS_SHOW_AVATAR, $inavatar == 'uploaded');
     qa_db_user_set_flag($userid, QA_USER_FLAGS_SHOW_GRAVATAR, $inavatar == 'gravatar');
     if (is_array(@$_FILES['file']) && $_FILES['file']['size']) {
 $inmessages = qa_post_text('messages');
 $inavatar = qa_post_text('avatar');
 $innotifyan = qa_post_text('notify_an');
 $innotifyq = qa_post_text('notify_q');
 $innotifya = qa_post_text('notify_a');
 $errors = qa_handle_email_validate($inhandle, $inemail, $qa_login_userid);
 if (!isset($errors['handle'])) {
     qa_db_user_set($qa_login_userid, 'handle', $inhandle);
 }
 if (!isset($errors['email'])) {
     if ($inemail != $useraccount['email']) {
         qa_db_user_set($qa_login_userid, 'email', $inemail);
         qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_EMAIL_CONFIRMED, false);
         $isconfirmed = false;
         if ($doconfirms) {
             qa_send_new_confirm($qa_login_userid);
         }
     }
 }
 qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_NO_MESSAGES, !$inmessages);
 qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_SHOW_AVATAR, $inavatar == 'uploaded');
 qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_SHOW_GRAVATAR, $inavatar == 'gravatar');
 qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_NOTIFY_ANNOUNCEMENTS, !$innotifyan);
 qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_NOTIFY_QUESTIONS, !$innotifyq);
 qa_db_user_set_flag($qa_login_userid, QA_USER_FLAGS_NOTIFY_ANSWERS, !$innotifya);
 if (is_array(@$_FILES['file']) && $_FILES['file']['size']) {
     require_once QA_INCLUDE_DIR . 'qa-app-limits.php';
     switch (qa_user_permit_error(null, 'U')) {
         case 'limit':
             $errors['avatar'] = qa_lang('main/upload_limit');
             break;