drupal_validate_form
includes/form.inc, строка 562
- Версии
- 5
drupal_validate_form($form_id, $form)
- 6
drupal_validate_form($form_id, $form, &$form_state)
Проверяет отправленные пользователем данные формы из $form_state
, используя функции проверки, заданные в структурированном массиве формы.
Параметры
$form_id
Уникальный идентификатор формы для валидации, вывода, темизации и функции hook_form_alter.
$form
Ассоциативный массив, содержащий структуру формы
$form_state
Ассоциативный массив, содержащий текущее состояние формы. Текущие отправленные пользователем данные хранятся в $form_state['values']
, однако для простоты функции проверки получают точную копию этих значений. Проверяющие обработчики (validate) также могут использовать $form_state
для передачи информации обработчикам подтверждения (submit). Например:
$form_state['data_for_submision']
= $data
;
Такой приём может быть полезным, когда для проверки требуется обработка файла, запросы веб-служб или другие ресурсоёмкие запросы, которые нет необходимости повторять на этапе подтверждения.
Связанные темы
Код
<?php
function drupal_validate_form($form_id, $form, &$form_state) {
static $validated_forms = array();
if (isset($validated_forms[$form_id])) {
return;
}
// If the session token was set by drupal_prepare_form(), ensure that it
// matches the current user's session.
if (isset($form['#token'])) {
if (!drupal_valid_token($form_state['values']['form_token'], $form['#token'])) {
// Setting this error will cause the form to fail validation.
form_set_error('form_token', t('Validation error, please try again. If this error persists, please contact the site administrator.'));
}
}
_form_validate($form, $form_state, $form_id);
$validated_forms[$form_id] = TRUE;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии