不会使用php将用户输入存储在数据库中

时间:2013-10-18 13:49:26

标签: php mysql

问题是只存储了密码,但其余的不存在...... 这是php代码

    <?php
         define('DB_NAME','my_db');
         define('DB_USER','root');
         define('DB_PASSWORD','123');
         define('DB_HOST','localhost');

         $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
         $firstname = isset($_POST['fname']) ? $_POST['fname'] : '';
         $lastname =isset($_POST['lname']) ? $_POST['lname'] : '';
         $email = isset($_POST['email']) ? $_POST['email'] : '';
         $bday = isset($_POST['bday']) ? $_POST['bday'] : '';
         $gender = isset($_POST['gender']) ? $_POST['gender'] : '';
         $pass = isset($_POST['password']) ? $_POST['password'] : '';
         $submit = isset($_POST['submit']) ? $_POST['submit'] : null;
         $sql = "INSERT INTO user(fname,lname,email,bday,gender,password)
         VALUES ('$firstname','$lastname','$email','$bday','$gender','$pass')";
       if(!mysql_query($sql)){
         die('Error: ' . mysql_error());
       }
        mysql_close();
       ?>

这是html代码

   <form action="connect.php" method="post">
             First name: <input type="password" name="fname">
             Last name: <input type="text" name="lname"><br><br>
             Email Address: <input type="email" name="email"><br><br>
             Birthday: <input type="date" name="bday">
             Sex: <input list="Sex" name="gender">
             Password: <input type="password" name="password"><br><br>
             <datalist id="Sex">
             <option value="Male">
             <option value="Female">
             </datalist><br><br>
             <input type="submit" value="Sign up!" id="btnsignup" />
        </form>

*表中的数据类型是:fname是varchar,lname是varchar,email是varchar,bday是日期,性别是char,密码是char *

2 个答案:

答案 0 :(得分:0)

首先,您的HTML只能与最新的浏览器一起使用。试试这个以支持旧的浏览器(也许你也有一个,这就是问题):

<form action="connect.php" method="post">
    First name: <input type="text" name="fname">
    Last name: <input type="text" name="lname"><br><br>
    Email Address: <input type="text" name="email"><br><br>
    Birthday: <input type="text" name="bday" placeholder="YYYY-MM-DD">
    Sex: <select name="gender">
    <option value="Male">Male</option>
    <option value="Female">Female</option>
    </select>
    Password: <input type="password" name="password"><br><br>
    <input type="submit" value="Sign up!" id="btnsignup" />
</form>

您可以在PHP脚本中的所有其他代码之前的第一行使用var_dump($_POST)print_r($_POST)来检查HTML中的POST输入是否到达PHP。 作为替代方案,您可以检查var_dump($_REQUEST)的输出,此数组将包含GET和POST变量。

仔细检查是否在您发布之前执行了其他PHP代码(重定向,操作$ _POST vars等)。 还要检查是否有使用您使用的变量名设置的cookie,$ _SERVER或ENV变量。

在正常情况下,您的示例代码应该有效。

答案 1 :(得分:-1)

请在表格中查看表格或字段名称中的字段限制。我认为存在问题。