You are here

function multiple_email_confirm_form_submit in Multiple E-mail Addresses 5

Same name and namespace in other branches
  1. 6 multiple_email_confirm_page.inc \multiple_email_confirm_form_submit()
  2. 7 multiple_email_confirm_page.inc \multiple_email_confirm_form_submit()
  3. 2.x multiple_email_confirm_page.inc \multiple_email_confirm_form_submit()

Process multiple_email_confirm_form submission

Parameters

string $form_id:

array $form_values:

File

./multiple_email_confirm_page.inc, line 91
Functions for displaying and processing the confirmation page

Code

function multiple_email_confirm_form_submit($form_id, $form_values) {
  global $user;
  if ($email = multiple_email_get_address($form_values['eid'])) {
    if ($user->uid != $email->uid) {
      watchdog('Multiple Email', "Attempted unauthorized access to email {$email->eid} by user {$user->name} ({$user->uid})");
    }
    elseif ($email->confirmed) {
      drupal_set_message("'{$email->email}' is already confirmed!");
    }
    elseif (trim($form_values['code']) != $email->confirm_code) {
      $attempts = $email->attempts + 1;
      $allowed = (int) variable_get('multiple_email_confirm_attempts', 3);
      if ($allowed && $attempts >= $allowed) {
        $email->confirm_code = multiple_email_code(10);
        db_query("\n          UPDATE {multiple_email} SET\n            confirm_code='%s',\n            time_code_generated=%d,\n            attempts=0\n          WHERE\n            eid = %d", $email->confirm_code, time(), $email->eid);
        multiple_email_send_confirmation($user, $email);
        drupal_set_message('You have exhausted your allowed attempts at confirming this email address. A new confirmation code has been sent.');
      }
      else {
        db_query("UPDATE {multiple_email} SET attempts=%d WHERE eid=%d", $attempts, $email->eid);
        drupal_set_message('The confirmation code was incorrect');
      }
    }
    else {

      // Confirmation successful!
      multiple_email_confirm_email($email);
      drupal_set_message("The address '{$email->email}' has been confirmed!");
      drupal_goto('my-email-addresses');
    }
  }
  else {
    watchdog('Multiple Email', 'Error loading email ' . $form_values['eid'], WATCHDOG_WARNING);
  }
  drupal_goto("my-email-addresses/confirm/{$form_values['eid']}");
}