Redaxscript\Validator\Email::validate PHP Method

validate() public method

validate the email
Since: 2.2.0
public validate ( string $email = null, boolean $dns = true ) : integer
$email string target email address
$dns boolean optional validate dns
return integer
    public function validate($email = null, $dns = true)
    {
        $output = ValidatorInterface::FAILED;
        /* validate email */
        if (filter_var($email, FILTER_VALIDATE_EMAIL) !== false) {
            $output = ValidatorInterface::PASSED;
            $emailArray = array_filter(explode('@', $email));
            /* validate dns */
            if ($dns === true) {
                $dnsValidator = new Dns();
                $output = $dnsValidator->validate($emailArray[1], 'MX');
            }
        }
        return $output;
    }

Usage Example

Example #1
0
 /**
  * process the class
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     $emailValidator = new Validator\Email();
     $loginValidator = new Validator\Login();
     $auth = new Auth($this->_request);
     /* process post */
     $postArray = ['password' => $specialFilter->sanitize($this->_request->getPost('password')), 'task' => $this->_request->getPost('task'), 'solution' => $this->_request->getPost('solution')];
     /* user and email */
     $users = Db::forTablePrefix('users');
     if ($emailValidator->validate($this->_request->getPost('user')) === Validator\ValidatorInterface::PASSED) {
         $postArray['user'] = $emailFilter->sanitize($this->_request->getPost('user'));
         $users->where('email', $postArray['user']);
     } else {
         if ($loginValidator->validate($this->_request->getPost('user')) === Validator\ValidatorInterface::PASSED) {
             $postArray['user'] = $specialFilter->sanitize($this->_request->getPost('user'));
             $users->where('user', $postArray['user']);
         }
     }
     $user = $users->where('status', 1)->findOne();
     /* handle error */
     $messageArray = $this->_validate($postArray, $user);
     if ($messageArray) {
         return $this->_error(['message' => $messageArray]);
     }
     /* handle success */
     if ($auth->login($user->id)) {
         return $this->_success();
     }
     return $this->_error(['message' => $this->_language->get('something_wrong')]);
 }
All Usage Examples Of Redaxscript\Validator\Email::validate