0

jQueryまたはjavascriptベースの年齢チェッカーを実装する方法の確かな例はありますか? サイトの任意のページにアクセスしたときに、少なくとも 1 日に 1 回、日、月、年を入力する必要があるページに誰かを送ろうとしています。彼らが 18 歳であることが確認されると、彼らが戻ってきた場合、翌日まで再度悩まされることはありません。

何か案は?

4

3 に答える 3

4

JavaScript からプログラムで変更でき、有効期限を設定できるため、Cookie ベースのソリューションは理にかなっているように見えます。純粋な 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.

あとは、サーバー側の応答ハンドラーが、要求エージェントからの「age」Cookie の値に基づいて条件付きでコンテンツを返すだけです。

于 2010-11-24T17:53:08.510 に答える
0

同様の機能を実装するための既存のリソースが Web 上に多数あるようです。それらはすべて、ユーザーが保持する誕生日セレクターを使用して Cookie を作成し、1 日後に期限切れになるように設定できます。ユーザーが 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/

于 2010-11-24T17:35:33.023 に答える
-1

DateJSと呼ばれる JavaScript 用の素晴らしい Date ライブラリがあります。日付操作が非常に簡単になります。

もちろん、最初のステップは、提供された日付を解析することです。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 を無効にしたり、クライアント側を変更したりできることは言うまでもありません。しかし、それはまったく別の議論です。

編集: 確認を 1 日 1 回だけ行うというあなたの言及を忘れていました。これには、次のいずれかが必要です。

  • クッキー (クライアント側)
  • HTML5 LocalStorage (クライアント側)
  • ページのレンダリング時または AJAX 要求を介して最後の検証を提供できるセッション。(サーバー側とクライアント側コンポーネント)
于 2010-11-24T17:46:48.267 に答える