1

将出生日期从我的 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>
4

2 回答 2

3

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

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

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

于 2013-09-06T11:27:08.617 回答
0

Hexblot 击败了我,但一些通用的调试技巧可能仍能帮助您在未来修复这些问题:

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

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

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

遵循这三个技巧将很快发现几乎所有简单的变量名错误、格式错误和数据库结构/数据格式错误,而且只需轻轻拍一下额头。

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

于 2013-09-06T11:33:01.357 回答