Проверка на местах: 18 лет и старше


Я использую модуль Проверки поля для проверки поля даты, которое будет содержать день рождения пользователя. Я хочу убедиться, что этому человеку 18 лет или старше. Вот настройки, которые я собирался использовать в своем правиле проверки. Это правильно?

Столбец: значение

Минимальная дата: сейчас - 18 лет

Author: kiamlaluno, 2013-08-04

2 answers

В зависимости от ваших требований проверка поля может быть хорошим подходом. Это просто настроить, но одна потенциальная проблема заключается в том, что если это поле может быть изменено пользователем, он может легко изменить свой день рождения, если отправка формы будет отклонена.

Часто это нормально, но для моего сайта мне нужно было фактически блокировать пользователей моложе 18 лет, поэтому я сделал следующее. У меня есть обязательное поле даты день рождения в форме регистрации пользователя.

Затем я добавил вычисляемое поле, возраст, чтобы рассчитать возраст на основе значения поля даты, день рождения. Для примера PHP вы можете посмотреть этот ответ на переполнение стека. Это способ, которым вы можете учитывать високосные годы и т.д.

Затем я добавил правило:

Событие После сохранения новой учетной записи пользователя

Состояние Данные для сравнения: Возраст менее 18.

Действия Блок пользователь

Преимущество такого способа заключается в том, что если пользователь зарегистрируется с днем рождения младше 18 лет, его адрес электронной почты будет заблокирован для повторной регистрации. Конечно, это может быть или не быть необходимым в вашем случае, но я просто выкладываю это, потому что на других сайтах может быть такое требование.

 3
Author: Patrick Kenny, 2017-05-23 12:41:25

Ограничения по дате полезно выполнить без кодирования. Включите подмодуль date_restrictions_minmax и настройте поле даты так, чтобы минимальная допустимая дата составляла 18 лет.

 0
Author: jonhattan, 2013-08-13 11:33:11