2016-10-08 115 views
0

我想驗證一個網站訪問者達到法定年齡,或未滿18歲PHP年齡驗證

我嘗試過在Age Verification

我給出一個答案的工作使用下面的部分從提問/回答:

/** 
* @author - Sephedo 
* @for - Deedub @ Stackoverflow 
* @question - https://stackoverflow.com/questions/18751788/age-verification 
*/ 
$min_age = 18; 

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

然後我的形式是:

<form class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 
<fieldset> 

<?php 
    // lowest year wanted 
    $cutoff = 1910; 

    // current year 
    $now = date('Y'); 

    // build months menu 
    echo '<div class="form-group">' . PHP_EOL; 
    echo '<label class="col-md-4 control-label" for="selectbasic">Month</label>' . PHP_EOL; 
    echo '<div class="col-md-4">' . PHP_EOL; 
    echo '<select name="month" class="form-control">' . PHP_EOL; 
    for ($m=1; $m<=12; $m++) { 
     echo ' <option value="' . $m . '">' . date('F', mktime(0,0,0,$m)) . '</option>' . PHP_EOL; 
    } 
    echo '</select>' . PHP_EOL; 
    echo '</div>' . PHP_EOL; 
    echo '</div>' . PHP_EOL; 

    // build days menu 
    echo '<div class="form-group">' . PHP_EOL; 
    echo '<label class="col-md-4 control-label" for="selectbasic">Day</label>' . PHP_EOL; 
    echo '<div class="col-md-4">' . PHP_EOL; 
    echo '<select name="day" class="form-control">' . PHP_EOL; 
    for ($d=1; $d<=31; $d++) { 
     echo ' <option value="' . $d . '">' . $d . '</option>' . PHP_EOL; 
    } 
    echo '</select>' . PHP_EOL; 
    echo '</div>' . PHP_EOL; 
    echo '</div>' . PHP_EOL; 

    // build years menu 
    echo '<div class="form-group">' . PHP_EOL; 
    echo '<label class="col-md-4 control-label" for="selectbasic">Year</label>' . PHP_EOL; 
    echo '<div class="col-md-4">' . PHP_EOL; 
    echo '<select name="year" class="form-control">' . PHP_EOL; 
    for ($y=$now; $y>=$cutoff; $y--) { 
     echo ' <option value="' . $y . '">' . $y . '</option>' . PHP_EOL; 
    } 
    echo '</select>' . PHP_EOL; 
    echo '</div>' . PHP_EOL; 
    echo '</div>' . PHP_EOL; 
?> 

<div class="form-group"> 
    <label class="col-md-4 control-label" for="singlebutton">Done?</label> 
    <div class="col-md-4"> 
    <button type="submit" class="btn btn-primary">Submit</button> 
    </div> 
</div> 

</fieldset> 
</form> 

當我提交表格,頁面上沒有新的輸出echo("over $min_age");echo("under $min_age");

我可以俯視嗎?

只是爲了節省時間,這裏是我的HTML表單輸出,而不PHP:

<form class="form-horizontal" method="post" action="/landing.php"> 
<fieldset> 

<div class="form-group"> 
<label class="col-md-4 control-label" for="selectbasic">Month</label> 
<div class="col-md-4"> 
<select name="month" class="form-control"> 
    <option value="1">January</option> 
    <option value="2">February</option> 
    <option value="3">March</option> 
    <option value="4">April</option> 
    <option value="5">May</option> 
    <option value="6">June</option> 
    <option value="7">July</option> 
    <option value="8">August</option> 
    <option value="9">September</option> 
    <option value="10">October</option> 
    <option value="11">November</option> 
    <option value="12">December</option> 
</select> 
</div> 
</div> 
<div class="form-group"> 
<label class="col-md-4 control-label" for="selectbasic">Day</label> 
<div class="col-md-4"> 
<select name="day" class="form-control"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
    <option value="9">9</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> 
</div> 
</div> 
<div class="form-group"> 
<label class="col-md-4 control-label" for="selectbasic">Year</label> 
<div class="col-md-4"> 
<select name="year" class="form-control"> 
    <option value="2016">2016</option> 
    <option value="2015">2015</option> 
    <option value="2014">2014</option> 
    <option value="2013">2013</option> 
    <option value="2012">2012</option> 
    <option value="2011">2011</option> 
    <option value="2010">2010</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> 
</select> 
</div> 
</div> 

<div class="form-group"> 
    <label class="col-md-4 control-label" for="singlebutton">Done?</label> 
    <div class="col-md-4"> 
    <button type="submit" class="btn btn-primary">Submit</button> 
    </div> 
</div> 

</fieldset> 
</form> 

回答

1

要檢查是「提交」在POST設置,但你沒有與該名稱的任何輸入,所以它將永遠不會被設置。嘗試在您的提交按鈕上添加名稱:

<button type="submit" name="submit" class="btn btn-primary">Submit</button> 
+0

當然。一些如此簡單。我會盡快接受。謝謝。 :) –