мой код впускает людей, если их там больше 19, но также, если ваш возраст не позволяет вам войти, почему это? У меня был человек, который пытался зайти на мой сайт сегодня с 1958 года, и меня выгнали, но я могу войти в 1989, и он работает нормально.
страница указателя
<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js" lang="">
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>510 Vapour</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<link rel="stylesheet" href="css/animate.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
</head>
<div class="js">
<body>
<!-- Preloader section -->
<div id="preloader"></div>
<!-- Preloader section -->
<div class="container">
<!-- AccessBox section -->
<div id="accessbox"class="animated bounceInDown"> <img class="profile-img" src="images/logo.png" />
<h2 class="text-center">Please enter your date of birth</h2>
<!-- Form section-->
<form action="php/access.php" method="post" class="access-form">
<input type="text" name="yy" class="access-input-lg" placeholder="2016" required autofocus>
<input type="text" name="mm" class="access-input" placeholder="05">
<input type="text" name="dd" class="access-input" placeholder="10">
<input type="submit" name="submit"class="access-btn" value="OK" >
<div id="remember" class="checkbox text-center">
<label class="text-center">
<input type="checkbox" value="remember-me">
Remember me </label>
</div>
</form>
<!-- Form section-->
<h1 class="text-center"><i class="fa fa-exclamation-triangle red"></i> You must be 19+ to enter this site </h1>
<p class="text-center">By ENTERING, you are consenting to your Province's Smoking Laws. You may be required to show a valid government issued Photo ID indicating your date of birth at time of delivery or at the Post Office.</p>
</div>
<!-- AccessBox section -->
</div>
<!-- /container -->
<!-- JS files-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!-- Pre Loader-->
<script type="text/javascript">
jQuery(document).ready(function($) {
$(window).load(function(){
$('#preloader').fadeOut('slow',function(){$(this).remove();});
});
});
</script>
</body>
</div>
</html>
access.php
<?php
$minAge = 19;
if(isset($_POST['submit'])){
if(strlen($_POST['mm'])==1)
$month = '0'.$_POST['mm'];
else
$month = $_POST['mm'];
$agevar = $_POST['yy'];
$age = strtotime($agevar);
$nineteen = strtotime("-" . $minAge . " years");
if($age && $nineteen && $age <= $nineteen){
header('Location: https://www.510vapour.com/main');
}
else{
header('Location: ../error.html');
}
}
?>
Ты можешь использовать DateTime
объекты для расчета точного возраста человека и выбора соответствующего действия на основе этого.
С помощью year-month-day
Формат при построении объекта должен работать независимо от количества цифр, указанных для года, месяца или дня.
$birthdate = new DateTime($_POST['yy'].'-'.$_POST['mm'].'-'.$_POST['dd']);
$now = new DateTime;
$age = $birthdate->diff($now);
if ($age->y >= $minAge){
header('Location: https://www.510vapour.com/main');
} else {
header('Location: ../error.html');
}
Вот более простое решение:
if (time() < strtotime('+19 years', strtotime($dob))) {
//User is under 19 years of age
header('Location: ../error.html');
}else{
header('Location: https://www.510vapour.com/main');
}
действительный $dob
1979-02-21
или же 21 Feb 1986
Вы также можете использовать скрипт jQuery проверить возраст пользователя.