Обработка POST-запросов
Все данные из формы, а также данные, отправленные Ajax-запросом, обрабатываются классом Модуль_action, описанным в файле modules/модуль/модуль.action.php.
Обработка подключается всегда, когда передана переменная $_POST["module"] = 'модуль';
Доступ к этому файлу идет через контроллер modules/модуль/модуль.php. Если в контроллере описана функция action()
, то она определяет какую функцию в файле modules/модуль/модуль.action.php в зависимости от того, что передано в переменной $_POST["action"]
. Если функция action()
не описана в контроллере, то вызывается функция init()
в файле modules/модуль/модуль.action.php.
Данные модулю могут быть переданы даже если он не подключен ни к одной странице сайта. Проверка на соответствие прикрепленного к странице модуля и вызванного модуля проводиться при обработке запроса, если это необходимо.
Структура класса может быть любой для того чтобы реализовывать предусмотренный функционал.
Класс Action
Класс Модуль_action наследует класс Action, описанный в файле includes/action.php.
Методы
Свойства
var result – полученный после обработки данных результат.
Методы
void end () – Отправляет ответ.
Функция вызывается из includes/init.php после любого вызова обработки действия в модуле.
Пример:
$module = new Feedback_action($this->diafan);
$module->action();
$module->action->end();
boolean result () – Проверяет сформирован ли ответ.
Пример:
if(empty($_POST["mail"]))
{
$this->result["errors"]["mail"] = "Введите e-mail.";
}
// если ответ сформирован (например, найдена ошибка в передаваемых данных),
// останавливаем выполнение функции обработки
if ($this->result())
return;
string get_form_tag () – Получает тег-идентификатор формы.
void check_user () – Проверяет авторизован ли пользователь на сайте.
Пример:
// проверяем авторизован ли пользователь
$this->check_user();
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
void check_user_hash () – Проверяет хэш пользователя.
Пример:
// проверяем верен ли хэш пользователя
$this->check_user_hash();
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
void empty_required_field (array $config) – Проверяет на заполнение обязательных полей.
- array $config: настройки функции: params поля формы, prefix префикс, module модуль
Если в форме указаны поля, требующие обязательного заполнения, то корректность ввода может быть проверена этой функцией. Список требующих проверки полей должен быть передан в виде аргумента.
Пример:
// получаем поля формы обратной связи
$params = $this->model->get_params(array("module" => "feedback", "where" => "site_id=".$site_id));
// проверяем заполнены ли обязательные поля
$this->empty_required_field(array("params" => $params));
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
void insert_values (array $config) – Добавляет значение полей формы в базу данных.
- array $config: настройки функции: id номер элемента, table таблица, params поля формы, multilang значения переводятся
Данная функция получает список аргументов, в соответствии с которым производит запись значений в базу данных. Вызывается при обработке данных из формы.
Пример:
// modules/cart/cart.action.php
// запись данных при оформлении заказа в модуле «Корзина»
$this->insert_values(array("id" => $order_id, "table" => "shop_order", "params" => $params));
boolean check_site_id () – Проверяет корректность номера страницы сайта..
Пример:
// проверяем правильно ли передан номер страницы сайта,
// к которой подключен модуль
$this->check_site_id();
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
void check_captcha () – Проверяет правильность капчи.
При вызове функции она обращается к методам класса «Captcha» для проверки правильности ввода. Если каптча введена неверно, будет возвращено сообщение с ошибкой.
Пример:
// проверяем правильно ли введен защитный код
$this->check_site_id();
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
void update_values (array $config) – Обновляет значение полей формы в базу данных.
- array $config: настройки функции: id номер элемента, table таблица, params поля формы, prefix префикс, multilang значения переводятся, no_empty_param_ids массив не требующих заполнения параметров
Пример:
// modules/usersettings/usersettings.action.php
// изменение данных текущего пользования при редактировании профиля через личный кабинет
$this->update_values(array("id" => $this->diafan->_users->id, "table" => "users", "params" => $params));
boolean valid_email (string $email, string $field) – Проверка e-mail на валидность.
- string $email: e-mail
- string $field: название поля в массиве $_POST
Используется сторонний файл includes/validate.php. При неудачной проверке будет возвращено значение TRUE, и добавлено сообщение о неверном формате электронной почты.
Пример:
// modules/faq/faq.action.php
// проверка правильности формата введенной электронной почты при отправке вопроса; модуль «Вопрос-ответ»
$this->valid_email($_POST['email'], "email");
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
boolean valid_phone (string $phone, string $field) – Проверка телефона на валидность.
- string $phone: телефон
- string $field: название поля в массиве $_POST
Пример:
// modules/registration/registration.action.php
// проверка правильности формата введенного телефона при регистрации пользователя
$this->valid_phone($_POST['phone'], "phone");
// если найдена ошибка, останавливаем выполнение функции обработки
if ($this->result())
return;
boolean valid_url (string $url, string $field) – Проверка ссылки на валидность.
- string $url: ссылка
- string $field: название поля в массиве $_POST
array get_attributes (array &$attributes) – Задает неопределенным атрибутам шаблонного тега значение по умолчанию.
- array $attributes: массив определенных атрибутов
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.
Ваш комментарий будет первым.