• Resolved Finnaus

    (@finnaus)


    Hi,
    I am wanting to create a enter page on my website so that someone goes to my website they enter their birth date and if they are a certain age, it lets them enter into the website, and if not, they get redirected back to a previous page or google or something like that.

    Thanks!

Viewing 15 replies - 1 through 15 (of 31 total)
  • Take a look–basically uses a form (which takes up the bottom portion of the code) to request visitor’s month, date, and year of birth. When the form is submitted, that’s when the first part of the code is run. The $minimumagetoviewsite variable can be changed to whatever minimum age you’re looking for, in years.

    If the year of their birth is more than 18 years (as the $minimumagetoviewsite is currently set to) before the current year, they’re accepted. If it’s less, they’re not. If it’s the year in which they turn 18, the code checks if the month of their birth has passed, if not, they’re rejected, if it has, they’re accepted, if it’s the same as the current month, it looks at the date, etc…

    Good luck!

    <html>
    <?php if($_POST['submitted'] != "") { ?>
    
    <?php 
    
    $minimumagetoviewsite = 18;
    $birthmonth = $_POST['month'];
    $birthdate = $_POST['date'];
    $birthyear = $_POST['year'];
    $todaysmonth = date("n");
    $todaysdate = date("j");
    $todaysyear = date("Y"); 
    
    if(($birthyear + $minimumagetoviewsite)<$todaysyear) {
    $yearcheck = "okay";
    } else if(($birthyear + $minimumagetoviewsite)>$todaysyear) {
    $yearcheck = "no";
    } else {
    $yearcheck = "same";
    }
    if($birthmonth < $todaysmonth) {
    $monthcheck = "okay";
    } else if($birthmonth > $todaysmonth) {
    $monthcheck = "no";
    } else {
    $monthcheck = "same";
    }
    if($birthdate <= $todaysdate) {
    $datecheck = "okay";
    } else {
    $datecheck = "no";
    };
    if ($yearcheck=="okay") {
    $agecheck = "pass";
    } else if ($yearcheck=="no") {
    $agecheck = "fail";
    } else {
    if ($monthcheck=="okay") {
    $agecheck = "pass";
    } else if ($monthcheck=="no") {
    $agecheck = "fail";
    } else {
    if ($datecheck=="okay") {
    $agecheck = "pass";
    } else if ($datecheck=="no") {
    $agecheck = "fail";
    }
    }
    }
    
    if($agecheck=="pass") { ?>
    
    This is where all the code goes for someone who's the right age
    
    <?php } else { ?>
    
    This is where all the code goes for someone who's too young
    
    <?php }; ?>
    
    <?php } else { ?>
    <form method="post" action="">
    <select name="month">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
    </select>
    <select name="date">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
    <option>13</option>
    <option>14</option>
    <option>15</option>
    <option>16</option>
    <option>17</option>
    <option>18</option>
    <option>19</option>
    <option>20</option>
    <option>21</option>
    <option>22</option>
    <option>23</option>
    <option>24</option>
    <option>25</option>
    <option>26</option>
    <option>27</option>
    <option>28</option>
    <option>29</option>
    <option>30</option>
    <option>31</option>
    </select>
    <select name="year">
    <option>1920</option>
    <option>1921</option>
    <option>1922</option>
    <option>1923</option>
    <option>1924</option>
    <option>1925</option>
    <option>1926</option>
    <option>1927</option>
    <option>1928</option>
    <option>1929</option>
    <option>1930</option>
    <option>1931</option>
    <option>1932</option>
    <option>1933</option>
    <option>1934</option>
    <option>1935</option>
    <option>1936</option>
    <option>1937</option>
    <option>1938</option>
    <option>1939</option>
    <option>1940</option>
    <option>1941</option>
    <option>1942</option>
    <option>1943</option>
    <option>1944</option>
    <option>1945</option>
    <option>1946</option>
    <option>1947</option>
    <option>1948</option>
    <option>1949</option>
    <option>1950</option>
    <option>1951</option>
    <option>1952</option>
    <option>1953</option>
    <option>1954</option>
    <option>1955</option>
    <option>1956</option>
    <option>1957</option>
    <option>1958</option>
    <option>1959</option>
    <option>1960</option>
    <option>1961</option>
    <option>1962</option>
    <option>1963</option>
    <option>1964</option>
    <option>1965</option>
    <option>1966</option>
    <option>1967</option>
    <option>1968</option>
    <option>1969</option>
    <option>1970</option>
    <option>1971</option>
    <option>1972</option>
    <option>1973</option>
    <option>1974</option>
    <option>1975</option>
    <option>1976</option>
    <option>1977</option>
    <option>1978</option>
    <option>1979</option>
    <option>1980</option>
    <option>1981</option>
    <option>1982</option>
    <option>1983</option>
    <option>1984</option>
    <option>1985</option>
    <option>1986</option>
    <option>1987</option>
    <option>1988</option>
    <option>1989</option>
    <option>1990</option>
    <option>1991</option>
    <option>1992</option>
    <option>1993</option>
    <option>1994</option>
    <option>1995</option>
    <option>1996</option>
    <option>1997</option>
    <option>1998</option>
    <option>1999</option>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    <option>2003</option>
    <option>2004</option>
    <option>2005</option>
    <option>2006</option>
    <option>2007</option>
    <option>2008</option>
    <option>2009</option>
    <option>2010</option>
    <option>2011</option>
    <option>2012</option>
    </select>
    <input type="hidden" name="submitted" value="yes">
    <input type="submit" name="submit" value="verify">
    </form>
    <?php }; ?>
    Thread Starter Finnaus

    (@finnaus)

    Thank you so much Dandy! I just have one more question, is there a way I can put a background image on this, and make it a page template so that there is nothing on the screen when you go to the website exempt the age verify and the background image.

    Thanks again!

    Hmm… What I would do is get into your ftp and find wp-content/themes/the theme you use.

    Create a file called ageverify.php (or whatever-you-want-to-call-it.php), and make the contents of it:

    <?php if($_POST['submitted'] != "") { ?>
    
    <?php 
    
    $minimumagetoviewsite = 18;
    $birthmonth = $_POST['month'];
    $birthdate = $_POST['date'];
    $birthyear = $_POST['year'];
    $todaysmonth = date("n");
    $todaysdate = date("j");
    $todaysyear = date("Y"); 
    
    if(($birthyear + $minimumagetoviewsite)<$todaysyear) {
    $yearcheck = "okay";
    } else if(($birthyear + $minimumagetoviewsite)>$todaysyear) {
    $yearcheck = "no";
    } else {
    $yearcheck = "same";
    }
    if($birthmonth < $todaysmonth) {
    $monthcheck = "okay";
    } else if($birthmonth > $todaysmonth) {
    $monthcheck = "no";
    } else {
    $monthcheck = "same";
    }
    if($birthdate <= $todaysdate) {
    $datecheck = "okay";
    } else {
    $datecheck = "no";
    };
    if ($yearcheck=="okay") {
    $agecheck = "pass";
    } else if ($yearcheck=="no") {
    $agecheck = "fail";
    } else {
    if ($monthcheck=="okay") {
    $agecheck = "pass";
    } else if ($monthcheck=="no") {
    $agecheck = "fail";
    } else {
    if ($datecheck=="okay") {
    $agecheck = "pass";
    } else if ($datecheck=="no") {
    $agecheck = "fail";
    }
    }
    }
    
    if($agecheck=="pass") {
    include(TEMPLATEPATH . '/index.php'); ?>
    
    <?php } else { ?>
    
    This is where all the code goes for someone who's too young
    
    <?php }; ?>
    
    <?php } else { ?>
    <form method="post" action="">
    <select name="month">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
    </select>
    <select name="date">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
    <option>13</option>
    <option>14</option>
    <option>15</option>
    <option>16</option>
    <option>17</option>
    <option>18</option>
    <option>19</option>
    <option>20</option>
    <option>21</option>
    <option>22</option>
    <option>23</option>
    <option>24</option>
    <option>25</option>
    <option>26</option>
    <option>27</option>
    <option>28</option>
    <option>29</option>
    <option>30</option>
    <option>31</option>
    </select>
    <select name="year">
    <option>1920</option>
    <option>1921</option>
    <option>1922</option>
    <option>1923</option>
    <option>1924</option>
    <option>1925</option>
    <option>1926</option>
    <option>1927</option>
    <option>1928</option>
    <option>1929</option>
    <option>1930</option>
    <option>1931</option>
    <option>1932</option>
    <option>1933</option>
    <option>1934</option>
    <option>1935</option>
    <option>1936</option>
    <option>1937</option>
    <option>1938</option>
    <option>1939</option>
    <option>1940</option>
    <option>1941</option>
    <option>1942</option>
    <option>1943</option>
    <option>1944</option>
    <option>1945</option>
    <option>1946</option>
    <option>1947</option>
    <option>1948</option>
    <option>1949</option>
    <option>1950</option>
    <option>1951</option>
    <option>1952</option>
    <option>1953</option>
    <option>1954</option>
    <option>1955</option>
    <option>1956</option>
    <option>1957</option>
    <option>1958</option>
    <option>1959</option>
    <option>1960</option>
    <option>1961</option>
    <option>1962</option>
    <option>1963</option>
    <option>1964</option>
    <option>1965</option>
    <option>1966</option>
    <option>1967</option>
    <option>1968</option>
    <option>1969</option>
    <option>1970</option>
    <option>1971</option>
    <option>1972</option>
    <option>1973</option>
    <option>1974</option>
    <option>1975</option>
    <option>1976</option>
    <option>1977</option>
    <option>1978</option>
    <option>1979</option>
    <option>1980</option>
    <option>1981</option>
    <option>1982</option>
    <option>1983</option>
    <option>1984</option>
    <option>1985</option>
    <option>1986</option>
    <option>1987</option>
    <option>1988</option>
    <option>1989</option>
    <option>1990</option>
    <option>1991</option>
    <option>1992</option>
    <option>1993</option>
    <option>1994</option>
    <option>1995</option>
    <option>1996</option>
    <option>1997</option>
    <option>1998</option>
    <option>1999</option>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    <option>2003</option>
    <option>2004</option>
    <option>2005</option>
    <option>2006</option>
    <option>2007</option>
    <option>2008</option>
    <option>2009</option>
    <option>2010</option>
    <option>2011</option>
    <option>2012</option>
    </select>
    <input type="hidden" name="submitted" value="yes">
    <input type="submit" name="submit" value="verify">
    </form>
    <?php }; ?>

    The only different between this code and the code I gave you earlier is that now, if the person passes the age test, instead of just spitting out “This is where all the code goes for someone who’s the right age”, it uses:

    <?php include(TEMPLATEPATH . '/index.php'); ?>

    which says to load your “Main Index” page.

    Now, all you need to do is go in and create a page and choose the template ageverify.php, or whatever you chose to call it. Then, on your dashboard, go to ‘settings’>>’reading’ and choose “a static page” for “front page displays” and select the page you just created from the drop down.

    So now, anytime someone goes to http://www.yoursite.com, they’ll be shown the age verification. If they pass, they’ll get sent to your main index page.

    I left out the header from your age verify page, since I’m assuming you’ll have things in there that you don’t want on that page. As a result, the css won’t get called in, so you’d need to style all of this code manually in order to have a background image. You can do that pretty simply by just adding this to the top of your age verify page:

    <html>
    <body style="background: url('http://www.yoursite.com/backgroundimage.jpg');">
    Thread Starter Finnaus

    (@finnaus)

    This is so great, thank you so much for helping a noob out XD

    Just one last question, is it possible to align the boxes and verify button on the bottom right of the screen?

    I’m trying to get it to look like this:

    View post on imgur.com

    and this is what it currently looks like:

    View post on imgur.com

    Also if you don’t have time to help me thats totally fine, I’ll find another way to do it.

    Thanks again.

    Definitely. Right above:

    <form method="post" action="">

    add:

    <div style="position: absolute; bottom: 0px; right: 0px">

    Then, near the very bottom, right after:

    </form>

    add:

    </div>

    That encapsulates the whole form (boxes and verify button) in a container which has been defined as being 0 pixels from the right side of the window, and 0 pixels from the bottom of the window. So if you find you want it further in or up, just change the “bottom: 0px” to “bottom: 25px”, or whetever number. Same for “right: 0px”.

    Tweak and see what you come up with!

    Thread Starter Finnaus

    (@finnaus)

    One last thing (hopefully)

    When the age is not over 21 (which is what I set it too) it still goes to the website, even when I try to put something like a redirect when it’s not over 21.

    Thanks again, this is looking really good.

    -Finn

    Couple things to try one-by-one and then test:

    1) Make sure line says EXACTLY: $minimumagetoviewsite = 21;

    2) Try removing <div style="position: absolute; bottom: 0px; right: 0px"> and </div>

    3) Where it originally said “This is where all the code goes for someone who’s too young”, replace with <?php break; ?>, which would make it very clear on a test if the right reaction was being triggered by someone being too young.

    Thread Starter Finnaus

    (@finnaus)

    Alright, so here’s what I think is happening.
    Weather you’re over 21 or not, it redirects you to a 404 page not found.
    I’m doing something wrong I know XD

    -Finn

    Okay, so change

    if($agecheck=="pass") {
    include(TEMPLATEPATH . '/index.php'); ?>
    
    <?php } else { ?>
    
    This is where all the code goes for someone who's too young
    
    <?php }; ?>

    to

    if($agecheck=="pass") { ?>
    This is where all the code goes for someone who's old enough
    
    <?php } else { ?>
    
    This is where all the code goes for someone who's too young
    
    <?php }; ?>

    If that works, we know the error lies with include(TEMPLATEPATH . '/index.php');.

    What’s supposed to be happening is that wordpress shows the new age verification page as the default home page. That page is one you created in wp-content/name-of-your-theme/. If someone goes to your site, they see the verification page and enter their birth date. If it’s over 21, the include(TEMPLATEPATH . '/index.php'); line of could should load your actual Main Index page.

    Thread Starter Finnaus

    (@finnaus)

    Nope, it still brings me to a 404 page not found…..

    Thread Starter Finnaus

    (@finnaus)

    Is there a place where I should put a URL to redirect to if $agecheck=pass or something?

    what does your browser’s url say when you get the 404?

    the thing that matters most is the bit after http://www.yoursite.com, so you don’t have to include the full url. Just wondering in terms of /index.php, or whatever

    Thread Starter Finnaus

    (@finnaus)

    nothing, it’s just the url of the website.

    Okay, so you go to http://www.yoursite.com and you see the age verification perfectly. No problems. But you submit the age, and you get 404.

    Try this–Find <form method="post" action="">. Action states what page the user should be directed to when they submit the form. I’m wondering if the fact that WordPress is automatically directing people from http://www.yoursite.com to http://www.yoursite.com/ageverify.php is messing things up.

    So change <form method="post" action=""> to <form method="post" action="http://www.yoursite.com/index.php">

Viewing 15 replies - 1 through 15 (of 31 total)
  • The topic ‘Enter Page’ is closed to new replies.