Reputation: 39
Am having a problem with saving the date of birth from my php form to Mysql Db. The form echoes, "Successful Registration" but the date saved is only 1970-01-01, regardless of date chosen on the form. Any assistance is much appreciated, Thank You!
1. Check.php
<?php
if(isset($_POST['registration']))
{
require "connection.php";
$FirstName = strip_tags($_POST['FirstName']);
$LastName = strip_tags($_POST['LastName']);
$Phone = $_POST['Phone'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$date = $year . "-" . $month . "-" . $day;
$dob = date('Y-m-d H', strtotime($date));
$query="insert into users set FirstName='".$FirstName."',LastName='".$LastName
."',Phone='".$Phone."',DOB='".$dob."'";
mysql_query($query)or die("".mysql_error());
echo "Successful Registration!";
}
?>
2. Registration.php
<html>
<head>
<title>Registration Form</title>
<style type="text/css">
h3{font-family: Calibri; font-size: 22pt; font-style: normal; font-weight: bold; color:SlateBlue;
text-align: center; text-decoration: underline }
table{font-family: Calibri; color:white; font-size: 11pt; font-style: normal;
text-align:; background-color: SlateBlue; border-collapse: collapse; border: 2px solid navy}
table.inner{border: 0px}
</style>
</head>
<body>
<form method="post" action="check.php" enctype="multipart/form-data">
<table width="300" border="0"<table align="center" cellpadding = "10">
<tr>
<td>FirstName:</td>
<td><input type="text" name="FirstName"></td>
</tr>
<tr>
<td>LastName:</td>
<td><input type="text" name="LastName"></td>
<tr>
<td>Phone:</td>
<td><input type="double" name="Phone"></td>
<!----- Date Of Birth -------------------------------------------------------->
<tr>
<td>DATE OF BIRTH</td>
<td>
<select name="day" id="Day">
<option value="-1">Day:</option>
<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>
<select id="Month" name="Month">
<option value="-1">Month:</option>
<option value="January">Jan</option>
<option value="February">Feb</option>
<option value="March">Mar</option>
<option value="April">Apr</option>
<option value="May">May</option>
<option value="June">Jun</option>
<option value="July">Jul</option>
<option value="August">Aug</option>
<option value="September">Sep</option>
<option value="October">Oct</option>
<option value="November">Nov</option>
<option value="December">Dec</option>
</select>
<select name="Year" id="Year">
<option value="-1">Year:</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="1997">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>
</td>
</tr>
</tr>
<span style="size:10%;color:#FF0000"><?php if(isset($_GET["pass"])) { echo $_GET["pass"]; } ?></span>
<tr>
<td> </td>
<td><input type="submit" value="Submit" name="registration" /></td>
</tr>
</table>
</form>
</body>
</html>
Upvotes: 1
Views: 1138
Reputation: 1002
Hexblot beat me to the answer, but some general debugging tips may still help you to fix these things in the future:
Firstly, you need to echo your SQL query and make sure it is performing as expected. Do you actually get what you expect in it when you try to register a client?
Second, copy the SQL into PHPmyadmin SQL panel and see if it executes. Errors are easier to pick up there and easier to correct quickly.
Thirdly check your db line. If the query executed, you still need to check if the data is stored correctly. Have you used the correct data format for the datatype specified? Does your date column simply contain NULL?
Following these three tips will pick up almost all simple variable name errors, formatting errors and db structure/data format errors quickly and with only a little slapping of the forehead.
It is also worth changing error reporting to E_ALL during development as it will pick up on such as incorrectly spelled indices and variables very easily at compile time.
Upvotes: 0
Reputation: 10643
PHP is case sensitive. You define your form item names as Month
and Year
, and try to access them via $_POST['month']
and $_POST['year']
, both of which are empty.
Therefore the fix: change to $_POST['Month']
and $_POST['Year']
PS this is why I asked the values for the $_POST
array, not from the code above.
Upvotes: 3