You are here

function _friendly_register_check_flood in Friendly Register 7

Checks to see if the user has too many requests (flood).

Return value

bool

1 call to _friendly_register_check_flood()
_friendly_register_check_field in ./friendly_register.module
Checks the value of a field on the user table.

File

./friendly_register.module, line 163
Primary logic for the friendly_register module that allows for checking of username and email.

Code

function _friendly_register_check_flood() {
  if (user_access('ignore flood')) {
    return TRUE;
  }
  else {
    $ip = ip_address();
    $q = 'SELECT hits FROM {friendly_register_flood} WHERE ip = :ip';
    $hits = db_query($q, array(
      ':ip' => $ip,
    ))
      ->fetchField();
    if ($hits == NULL) {
      db_insert('friendly_register_flood')
        ->fields(array(
        'ip' => $ip,
        'hits' => 1,
        'lasthit' => REQUEST_TIME,
      ))
        ->execute();
    }
    else {
      db_update('friendly_register_flood')
        ->expression('hits', 'hits + 1')
        ->expression('lasthit', REQUEST_TIME)
        ->condition('ip', $ip)
        ->execute();
    }
    return $hits < FRIENDLY_REGISTER_MAX_HITS;
  }
}