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 では大文字と小文字が区別されます。Monthフォーム項目名をおよびとして定義し、 および を介してYearそれらにアクセスしようとしましたが、どちらも空です。$_POST['month']$_POST['year']

したがって、修正: に変更し$_POST['Month']$_POST['Year']

$_POSTPSこれが、上記のコードからではなく、配列の値を尋ねた理由です。

于 2013-09-06T11:27:08.617 に答える
0

Hexblot は私を打ち負かしましたが、一般的なデバッグのヒントは、将来これらの問題を修正するのに役立つ場合があります。

まず、SQL クエリをエコーし​​、期待どおりに実行されていることを確認する必要があります。クライアントを登録しようとすると、実際に期待どおりの結果が得られますか?

次に、SQL を PHPmyadmin SQL パネルにコピーし、実行されるかどうかを確認します。そこではエラーを見つけやすく、すばやく修正しやすくなります。

3 番目に、db 行を確認します。クエリが実行された場合でも、データが正しく保存されているかどうかを確認する必要があります。指定したデータ型に対して正しいデータ形式を使用していますか? 日付列に NULL が含まれているだけですか?

これらの 3 つのヒントに従うと、ほとんどすべての単純な変数名エラー、フォーマット エラー、およびデータベース構造/データ フォーマット エラーが、額を少し叩くだけで迅速に検出されます。

また、開発中にエラー報告を E_ALL に変更することも価値があります。これは、コンパイル時にスペルが間違っているインデックスや変数を非常に簡単に検出するためです。

于 2013-09-06T11:33:01.357 に答える