0

私は年齢確認を行うのに困惑し、今何が最善の方法なのか疑問に思っています. 堅牢である必要はありません。当初の計画では jquery を使用していました。

このリソースを見つけました http://www.techerator.com/2010/09/how-to-perform-age-verification-with-jquery-and-cookies-mmm-cookies/

使いやすくするために、ここにメソッドを貼り付けました。

確認が必要なページで使用

if ($.cookie('is_legal') == "yes") {
 //legal!
} else {
 document.location = "http://www.domain.com/[pathtofile]/verify.php?redirect=http://<?php echo $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; ?>";
}

確認ページ

$('#accept-btn').click(function(){
 $.cookie('is_legal', 'yes', { expires: 1, path: '/', domain: 'domain.com' });

 <?php if ( !isset($_REQUEST['redirect']) || $_REQUEST['redirect'] == "" ) { ?>
 document.location = "http://www.domain.com";

 <?php }else{ ?>
 document.location = "<?php echo $_REQUEST['redirect']; ?>";
 <?php } ?>
});

ここにそのhtml部分があります。

<p>Are you OVER 18</p>
<div id="accept-btn">YES</div>
<div id="noaccept-btn">     NO</div >

最初の問題は、else ステートメントが機能していないことです。また、YES オプションと NO オプションのリダイレクトに同じ変数を使用しているようです。

だから私は興味があります.なぜこれが適切に機能しないのか、どのように修正するのか、そして第二に、ここで本当に良い方法は何ですか. 私が言ったように、seo/php または堅牢な方法は重要ではありません。

私の望む結果は、サイトの任意のページにアクセスすると、はいまたはいいえのオプションが表示され、はいの場合にページにアクセスでき、いいえを選択するとリダイレクトされることです。

4

2 に答える 2

3

これの純粋なPHPバージョンはどうですか??

<?php

/**
 * @author - Sephedo
 * @for - Deedub @ Stackoverflow
 * @question - http://stackoverflow.com/questions/18751788/age-verification
 */

$min_age = 18; // Set the min age in years

if( isset( $_POST['submit'] ) )
{
    if( mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year'] ) < mktime(0, 0, 0, date('m'), date('j'), ( date('Y') - $min_age ) ) )
    {
        var_dump("over $min_age");
    }
    else
    {
        var_dump("under $min_age");
    }
}

?>

<form method="POST" >
<fieldset>
<legend>Enter your age</legend>
<label for="day" >Day:</label>
<select name="day" >
<?php
    for( $x=1; $x <= 31; $x++ )
    {
        if( $x == date("j" ) ) echo "<option selected>$x</option>"; else echo "<option>$x</option>";
    }
?>
</select>
<label for="day" >Month:</label>
<select name="month" >
<?php
    for( $x=1; $x<=12; $x++ )
    {
        if( $x == date("m" ) ) echo "<option selected>$x</option>"; else echo "<option>$x</option>";
    }
?>
</select>
<label for="day" >Year:</label>
<select name="year" >
<?php
    for( $x=date("Y"); $x>=(date("Y")-100); $x-- )
    {
        echo "<option>$x</option>";
    }
?>
</select>
<input type="submit" name="submit" />
</fieldset>
</form>
于 2013-09-11T22:07:52.867 に答える