jQueryまたはjavascriptベースの年齢チェッカーを実装する方法の確かな例はありますか? サイトの任意のページにアクセスしたときに、少なくとも 1 日に 1 回、日、月、年を入力する必要があるページに誰かを送ろうとしています。彼らが 18 歳であることが確認されると、彼らが戻ってきた場合、翌日まで再度悩まされることはありません。
何か案は?
jQueryまたはjavascriptベースの年齢チェッカーを実装する方法の確かな例はありますか? サイトの任意のページにアクセスしたときに、少なくとも 1 日に 1 回、日、月、年を入力する必要があるページに誰かを送ろうとしています。彼らが 18 歳であることが確認されると、彼らが戻ってきた場合、翌日まで再度悩まされることはありません。
何か案は?
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 の値に基づいて条件付きでコンテンツを返すだけです。
同様の機能を実装するための既存のリソースが Web 上に多数あるようです。それらはすべて、ユーザーが保持する誕生日セレクターを使用して Cookie を作成し、1 日後に期限切れになるように設定できます。ユーザーが Cookie を有効にしていない場合、明らかにこれが問題になる可能性があります。以下にいくつかの例を示します。
http://www.webdesignforums.net/php-67/age_verification_script-30188/index2.html
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 回だけ行うというあなたの言及を忘れていました。これには、次のいずれかが必要です。