public function isValid($method = null) { if ($method) { $this->_method = $method; } $a_valid = []; $this->_valid = true; foreach ($this->_fields as $name => $field) { $valid = $field->validate($this->_method); $a_valid[$name] = (bool) $valid; if (!$valid) { $this->_valid = false; } } $this->_fieldValid = $a_valid; if (!$this->_valid) { $this->_generalError = self::$_textErrorValid; if (self::$_autoError and $this->_checkToken) { \Components\Infoblock::setInfo(self::$_textErrorValid); } } if ($this->_valid and $this->_method == 'post' and $this->_checkToken) { if (!\Components\CSRF::check()) { $this->_generalError = '!Токен безопастности устарел. Обновите страницу и повторите попытку.'; if (self::$_autoError) { \Components\Infoblock::setError('!Токен безопастности устарел. Обновите страницу и повторите попытку.'); } $this->_valid = false; } } return $this->_valid; }
/** * Генерация токена для CSRF * @return string */ public function token() { return \Components\CSRF::generate(); }