无论选择日期如何,日期都保存为1970-01-01

时间:2013-09-06 11:00:05

标签: php mysql sql

将我的php表格中的出生日期保存到Mysql Db时出现问题。形式相呼应,"成功注册"但保存的日期仅为1970-01-01,无论表格上选择的日期如何。非常感谢任何帮助,谢谢!

    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>&nbsp;</td>
            <td><input type="submit" value="Submit" name="registration" /></td>
        </tr>
    </table>
    </form>

    </body>
    </html>

2 个答案:

答案 0 :(得分:3)

PHP区分大小写。您将表单项名称定义为MonthYear,并尝试通过$_POST['month']$_POST['year']访问它们,两者都是空的。

因此修复:更改为$_POST['Month']$_POST['Year']

PS这就是为什么我问$_POST数组的值,而不是上面的代码。

答案 1 :(得分:0)

Hexblot打败了我的答案,但一些一般的调试技巧可能仍然可以帮助你解决这些问题:

首先,您需要回显SQL查询并确保它按预期执行。当你试图注册一个客户时,你真的得到了你期望的东西吗?

其次,将SQL复制到PHPmyadmin SQL面板中,看看它是否执行。错误更容易在那里找到并且更容易快速纠正。

第三步检查你的数据库线。如果执行了查询,您仍需要检查数据是否正确存储。您是否为指定的数据类型使用了正确的数据格式?您的日期列是否只包含NULL?

遵循这三个提示将快速获取几乎所有简单的变量名称错误,格式化错误和数据库结构/数据格式错误,并且只需轻轻拍打额头。

在开发过程中将错误报告更改为E_ALL也是值得的,因为它会在编译时非常容易地识别错误拼写的索引和变量。