/** * Guess values for the following fields * - EMAIL * - NAME * - FNAME * - LNAME * * @return array */ public function guessed() { $guessed = array(); $fields = $this->fields->all(); foreach ($fields as $field => $value) { // is this an email value? assume email field if (empty($guessed['EMAIL']) && is_string($value) && is_email($value)) { $guessed['EMAIL'] = $value; continue; } // remove special characters from field name $simple_key = str_replace(array('-', '_'), '', $field); if (empty($guessed['NAME']) && in_array($simple_key, array('NAME', 'YOURNAME', 'USERNAME', 'FULLNAME', 'CONTACTNAME'))) { // find name field $guessed['NAME'] = $value; } elseif (empty($guessed['FNAME']) && in_array($simple_key, array('FIRSTNAME', 'FNAME', 'GIVENNAME', 'FORENAME'))) { // find first name field $guessed['FNAME'] = $value; } elseif (empty($guessed['LNAME']) && in_array($simple_key, array('LASTNAME', 'LNAME', 'SURNAME', 'FAMILYNAME'))) { // find last name field $guessed['LNAME'] = $value; } } return $guessed; }
/** * Guess values for the following fields * - EMAIL * - NAME * - FNAME * - LNAME * * @return array */ public function guessed() { $guessed = array(); $fields = $this->fields->all(); foreach ($fields as $field => $value) { // transform value into array to support 1-level arrays $sub_fields = is_array($value) ? $value : array($value); foreach ($sub_fields as $sub_field_value) { // is this an email value? if so, assume it's the EMAIL field if (empty($guessed['EMAIL']) && is_string($sub_field_value) && is_email($sub_field_value)) { $guessed['EMAIL'] = $sub_field_value; continue 2; } } // remove special characters from field name $simple_key = str_replace(array('-', '_', ' '), '', $field); if (empty($guessed['FNAME']) && $this->string_contains($simple_key, array('FIRSTNAME', 'FNAME', 'GIVENNAME', 'FORENAME'))) { // find first name field $guessed['FNAME'] = $value; } elseif (empty($guessed['LNAME']) && $this->string_contains($simple_key, array('LASTNAME', 'LNAME', 'SURNAME', 'FAMILYNAME'))) { // find last name field $guessed['LNAME'] = $value; } elseif (empty($guessed['NAME']) && $this->string_contains($simple_key, 'NAME')) { // find name field $guessed['NAME'] = $value; } } return $guessed; }
/** * @return string */ public function get_client_ip() { $headers = function_exists('apache_request_headers') ? apache_request_headers() : $this->server->all(); if (array_key_exists('X-Forwarded-For', $headers) && filter_var($headers['X-Forwarded-For'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { return $headers['X-Forwarded-For']; } if (array_key_exists('HTTP_X_FORWARDED_FOR', $headers) && filter_var($headers['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { return $headers['HTTP_X_FORWARDED_FOR']; } return $this->server->get('REMOTE_ADDR', ''); }