Hi,

I'm new here,

Does someone have a script that asks user to enter there day/month/year and if over xx minimum age they are taken to website, if under age they are told they are under age and redirected to a link i specify.

Possibly with a function to choose to deny access to any webpage on the site or just certain pages.

If someone has a script or would write one could you please post.

I have seen many online but none of them do all the above and have limitations.

Thank you,
genieuk

Recommended Answers

All 21 Replies

Hi,

I am no a programmer or coder or anything, reason for posting in hoping someone already has a script or could create one.

Thanks
genieuk

Does it really have to be in Java, as it might be easier to do in PHP ...

Hi,

If it is PHP that would be better again :)

Thank you,
genieuk

Java and JavaScripts are two different technologies, dude!

I made request to move this post in correct place...

Java and JavaScripts are two different technologies, dude!

I made request to move this post in correct place...

Yup, he's confusing them, but I think PHP will probably his best bet to achieve something like this ...

May I suggest to move this to the PHP forum ?

Yes, php forum would be better. I am very sorry i thought i posted in Javascript forum NOT Java forum

Look at the *third* code example:

http://www.lotsofcode.com/php/validation.htm

is_numeric() is a common form to avoid characters from alphabet on age field.

Hi,

Thanks but this is not what i was wanting.

I want to put code on a page that shows a Day/Month/Year box (3 boxes one for Day, one for Month and one for Year.

If user falls below the minimum age they are redirected to a page of my choice. If they pass the minimum age they are then shown the page, possibly with function i can add to all my pages so if someone tries to access any page on my site they are first taken to the verification page.

Thank you,
genieuk

Why don't you just ask for his age (in years) instead ?

That's doable with simple conditionals. The most important field is year. We assume if is not > 1991 or 91. You wan to check boundaries, also use strtotime('-18 years')

That's doable with simple conditionals. The most important field is year. We assume if is not > 1991 or 91. You wan to check boundaries, also use strtotime('-18 years')

I know, but it isn't pretty for the user to each time select his day of birth, then the month and thereafter the year ...

I know, but it isn't pretty for the user to each time select his day of birth, then the month and thereafter the year ...

I agree with you, it is not pretty but several sites use this method of control with drop down lists and even input fields. I think more for legal purposes.

For legal purposes?
You can quickly bypass this mechanisms, if you really want to be sure you should use credit card validation or something (but keep in mind that this will discourage people to continue) ...

That is not intended for a 'perfect' system, it's only a disclaimer. If you want to bypass it, it's your problem, you're violating the law. Look the little legend on every drug, that doesn't avoid to swallow a pill by a minor.

HI,

I know anyone can make up a date of birth etc, but the whole point is for legal reasons,

Most countries now require to have something like i want above, it is not really a verification system but more to the point of notifiying user they must be minimum age or over to access site, it basically tells them the site they are entering contains what ever content like nudity etc.

Even thou i could simply use links something like (i agree) Get me out of here) etc i was hoping there was something like what i was asking for.

like this: http://www.carling.com/

I find it hard to believe with all the scripts out there, there is not one that does what i want, i have searched for past two days with no luck.

And it would be even better with a remember me cookie.

Regards,
genieuk

That is not intended for a 'perfect' system, it's only a disclaimer. If you want to bypass it, it's your problem, you're violating the law. Look the little legend on every drug, that doesn't avoid to swallow a pill by a minor.

Agreed, but I only wanted to mention that this system isn't going to prevent anyone to view your site's contents ...

<?php

$msg = null;

if ((is_numeric($_POST['month']) && !empty($_POST['month'])) &&
	(is_numeric($_POST['day']) && !empty($_POST['day'])) &&
	(is_numeric($_POST['year']) && !empty($_POST['year']))
){

$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];

if ($year < 1990){

	// redirects to new location
	header('Location: http://www.example.com/');
}else{

	$user_timestamp = mktime(0, 0, 0, $month, $day, $year);
	$legal_timestamp = strtotime('-18 years');
	if($user_timestamp < $legal_timestamp){
		// redirects to new location
		header('Location: http://www.example.com/');
	}else{
		$msg = "Underage not allowed to access content";
	}
}

}
?>
<div style="float:center; margin-left:30px;">
<?php if (!empty($msg)): ?>
	<div style="float:center; width:300px; color:red; border:1px solid red"><?php echo $msg; ?></div>
<?php else: ?>
<form name="myform" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
     <select style="float:center; margin-right:5px;" name="month">
		<option value="MM">MM</option>
		<option value="01">01</option>
		<option value="02">02</option>
		<option value="03">03</option>
		<option value="04">04</option>
		<option value="05">05</option>
		<option value="06">06</option>
		<option value="07">07</option>
		<option value="08">08</option>
		<option value="09">09</option>
		<option value="10">10</option>
		<option value="11">11</option>
		<option value="12">12</option>
	</select>
	<select style="float:center; margin-right:5px;" name="day">
		<option value="DD">DD</option>
		<option value="01">01</option>
		<option value="02">02</option>
		<option value="03">03</option>
		<option value="04">04</option>
		<option value="05">05</option>
		<option value="06">06</option>
		<option value="07">07</option>
		<option value="08">08</option>
		<option value="09">09</option>
		<option value="10">10</option>
		<option value="11">11</option>
		<option value="12">12</option>
		<option value="13">13</option>
		<option value="14">14</option>
		<option value="15">15</option>
		<option value="16">16</option>
		<option value="17">17</option>
		<option value="18">18</option>
		<option value="19">19</option>
		<option value="20">20</option>
		<option value="21">21</option>
		<option value="22">22</option>
		<option value="23">23</option>
		<option value="24">24</option>
		<option value="25">25</option>
		<option value="26">26</option>
		<option value="27">27</option>
		<option value="28">28</option>
		<option value="29">29</option>
		<option value="30">30</option>
		<option value="31">31</option>
     </select>
	<select style="float:center;" name="year">
		<option value="YYYY">YYYY</option>
		<option value="2009">2009</option>
		<option value="2008">2008</option>
		<option value="2007">2007</option>
		<option value="2006">2006</option>
		<option value="2005">2005</option>
		<option value="2004">2004</option>
		<option value="2003">2003</option>
		<option value="2002">2002</option>
		<option value="2001">2001</option>
		<option value="2000">2000</option>
		<option value="1999">1999</option>
		<option value="1998">1998</option>
		<option value="1997">1997</option>
		<option value="1996">1996</option>
		<option value="1995">1995</option>
		<option value="1994">1994</option>
		<option value="1993">1993</option>
		<option value="1992">1992</option>
		<option value="1991">1991</option>
		<option value="1990">1990</option>
		<option value="1989">1989</option>
		<option value="1988">1988</option>
		<option value="1987">1987</option>
		<option value="1986">1986</option>
		<option value="1985">1985</option>
		<option value="1984">1984</option>
		<option value="1983">1983</option>
		<option value="1982">1982</option>
		<option value="1981">1981</option>
		<option value="1980">1980</option>
		<option value="1979">1979</option>
		<option value="1978">1978</option>
		<option value="1977">1977</option>
		<option value="1976">1976</option>
		<option value="1975">1975</option>
		<option value="1974">1974</option>
		<option value="1973">1973</option>
		<option value="1972">1972</option>
		<option value="1971">1971</option>
		<option value="1970">1970</option>
		<option value="1969">1969</option>
		<option value="1968">1968</option>
		<option value="1967">1967</option>
		<option value="1966">1966</option>
		<option value="1965">1965</option>
		<option value="1964">1964</option>
		<option value="1963">1963</option>
		<option value="1962">1962</option>
		<option value="1961">1961</option>
		<option value="1960">1960</option>
		<option value="1959">1959</option>
		<option value="1958">1958</option>
		<option value="1957">1957</option>
		<option value="1956">1956</option>
		<option value="1955">1955</option>
		<option value="1954">1954</option>
		<option value="1953">1953</option>
		<option value="1952">1952</option>
		<option value="1951">1951</option>
		<option value="1950">1950</option>
		<option value="1949">1949</option>
		<option value="1948">1948</option>
		<option value="1947">1947</option>
		<option value="1946">1946</option>
		<option value="1945">1945</option>
		<option value="1944">1944</option>
		<option value="1943">1943</option>
		<option value="1942">1942</option>
		<option value="1941">1941</option>
		<option value="1940">1940</option>
		<option value="1939">1939</option>
		<option value="1938">1938</option>
		<option value="1937">1937</option>
		<option value="1936">1936</option>
		<option value="1935">1935</option>
		<option value="1934">1934</option>
		<option value="1933">1933</option>
		<option value="1932">1932</option>
		<option value="1931">1931</option>
		<option value="1930">1930</option>
		<option value="1929">1929</option>
		<option value="1928">1928</option>
		<option value="1927">1927</option>
		<option value="1926">1926</option>
		<option value="1925">1925</option>
		<option value="1924">1924</option>
		<option value="1923">1923</option>
		<option value="1922">1922</option>
		<option value="1921">1921</option>
		<option value="1920">1920</option>
		<option value="1919">1919</option>
		<option value="1918">1918</option>
		<option value="1917">1917</option>
		<option value="1916">1916</option>
		<option value="1915">1915</option>
		<option value="1914">1914</option>
		<option value="1913">1913</option>
		<option value="1912">1912</option>
		<option value="1911">1911</option>
		<option value="1910">1910</option>
		<option value="1909">1909</option>
		<option value="1908">1908</option>
		<option value="1907">1907</option>
		<option value="1906">1906</option>
		<option value="1905">1905</option>
		<option value="1904">1904</option>
		<option value="1903">1903</option>
		<option value="1902">1902</option>
		<option value="1901">1901</option>
		<option value="1900">1900</option>
     </select>
     <input type="submit" name="Submit" value="Submit" />
</form>
<?php endif; ?>
</div>

wow thanks,

Can you tell me how i change the minimum age and how this exactly works?

Thanks
genieuk

I'm using mainly one check... subtracting 18 years to 2009 would be 1991, so any user should have a born date below 1991 to access www.example.com. That conditional isn't dynamic, to adjust the code would be:

$min_year = date('Y', time());
$min_year = $min_year - 18;    // Change this (minimum age)

if($year < $min_year){
   ...

But, I prefer to use 19 years on the first condition, due to I want to make a more refined checking for users whose born date is near to the year limit. In that case, I use strtotime() to discount years and generate a timestamp, then I compare the user timestamp (date to seconds from 1970) with the subtracted timestamp obtained from today.

You cannot use only strtotime() to check age because only will work with a date above 1970. For that reason, two checks.

Also, if you want to adjust the minimal age, change the value inside strtotime()

thanks will try tomorrow when i got some time.

Regards
genieuk

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.