Проверка возраста и jquery - PullRequest
0 голосов
/ 24 ноября 2010

Есть ли у кого-нибудь убедительные примеры того, как реализовать проверку возраста на основе jQuery или javascript? Я рассчитываю отправить кого-нибудь на страницу, где ему нужно вводить данные по дню, месяцу и году хотя бы раз в день, когда они попадают на любую страницу сайта. Как только они подтвердят, что им исполнено 18 лет, они не будут снова заражены до следующего дня, если вернутся.

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 24 ноября 2010

Решение на основе файлов cookie кажется логичным, поскольку вы можете программно изменять их из JavaScript и устанавливать срок их действия.Вычисление даты в чистом JavaScript может быть сделано следующим образом:

var millisPerYear = 1000 * 60 * 60 * 24 * 365;
var birthdate = new Date(year, month, day); // from user input.
var age = ((new Date().getTime()) - birthdate.getTime()) / millisPerYear;
// Now set the "age" cookie.

Осталось только обработчикам ответов на стороне сервера возвращать контент условно на основании значения cookie-файла age из запросаагент.

0 голосов
/ 24 ноября 2010

Существует замечательная библиотека дат для JavaScript, которая называется DateJS . Это делает операции с датами чрезвычайно простыми.

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

Date.parse("Mar 3 2010");
Date.parse('March 20th 1973');
Date.parse("03 12 2010");

После того, как вы проанализировали дату, вы можете сравнить ее с датой 18 лет назад. Это также легко с DateJS

var userBDay = Date.parse("Mar 3 1970");
var eighteenYearsAgo = (18).years().ago();
var is18 = (userBDay >= eighteenYearsAgo);

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

РЕДАКТИРОВАТЬ: забыли о вашем упоминании о выполнении проверки только один раз в день. Это потребует либо:

  • Cookie (на стороне клиента)
  • HTML5 LocalStorage (на стороне клиента)
  • Сессия, где последняя проверка может быть предоставлена ​​либо во время рендеринга страницы, либо посредством запроса AJAX. (сторона сервера с компонентом на стороне клиента)
0 голосов
/ 24 ноября 2010

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

http://www.webdesignforums.net/php-67/age_verification_script-30188/index2.html

http://www.techerator.com/2010/09/how-to-perform-age-verification-with-jquery-and-cookies-mmm-cookies/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...