2010-11-24 4 views
0

Quelqu'un a-t-il des exemples concrets d'implémentation d'un vérificateur d'âge jQuery ou javascript? Je cherche à envoyer quelqu'un à une page où ils doivent entrer dans le jour, le mois et l'année au moins une fois par jour quand ils atteignent n'importe quelle page sur le site. Une fois qu'ils valident à 18 ans, ils ne seront plus harcelés jusqu'au lendemain s'ils reviennent.Age Check et jquery

Des idées?

Répondre

0

Il semble y avoir un certain nombre de ressources existantes sur le Web pour implémenter des fonctionnalités similaires. Chacun d'eux crée un cookie avec le sélecteur de jour de naissance qui est tenu par l'utilisateur et peut être configuré pour expirer un jour plus tard. Évidemment, cela peut poser problème si vos cookies ne sont pas activés. Voici quelques exemples.

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/

-1

Il y a une merveilleuse bibliothèque de date pour JavaScript appelé DateJS. Cela rend les opérations de date extrêmement simples.

Votre première étape est, bien sûr, d'analyser la date fournie. DateJS offre beaucoup de fonctionnalités d'analyse syntaxique, telles que:

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

Une fois que vous avez analysé la date, vous pouvez le comparer à la date il y a 18 ans. C'est aussi facile avec DateJS

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

Vous assumez bien sûr que l'utilisateur est honnête. Sans oublier que JS peut être désactivé ou modifié côté client. Mais c'est une discussion entièrement différente.

EDIT: Avait oublié votre mention de ne faire que la vérification une fois par jour. Cela nécessiterait soit:

  • Cookie (côté client)
  • HTML5 LocalStorage (côté client)
  • session, où la dernière vérification peut être fournie soit au moment du rendu de la page ou par le biais d'une requête AJAX. (côté serveur avec le composant côté client)
+0

Cette solution était obsolète même quand il a été suggéré – Matteo

+0

Cette bibliothèque semble modifier Array.prototype, ce qui est considéré comme une mauvaise pratique –

4

Une solution basée sur les cookies semble logique car vous pouvez les modifier par programmation à partir de JavaScript et vous pouvez définir leur expiration. Calcul de la date en JavaScript pur peut être fait en tant que tel:

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. 

Tout ce qui reste est votre chariot de réponse côté serveur pour retourner le contenu conditionnel en fonction de la valeur du cookie « âge » de l'agent de demande.