将数据从提交表单插入mysql数据库时,未定义的变量错误消息

时间:2016-01-02 17:48:15

标签: php html mysql database

我在使用php从表单中将数据插入myqsl数据库时遇到问题。 此错误显示:

enter image description here

有人能告诉我这段代码有什么问题吗? 我使用extract($ _POST)从超全局$ _POST数组中获取输入字段。当我将表单代码与php部分代码分开并将它们放在单独的php文件中时,它正常工作并且错误没有& #39; t显示。有人能告诉我在同一个php文件中执行它们有什么问题吗? 这是我在php中的代码:

<html>  

&#13;
&#13;
<html >
<head>
<title></title>
</head>
<body>
<?php



print ("<form action='p.php' method='post'>
    <p>Name
        <input type='text' name='firstname'  />
    </p>
    <p>Surname
        <input type='text' name='lastname' />
    </p>
    <p>Username
        <input type='text' name='username' />
    </p>
    <p>Password
        <input type='password' name='password' />
        <p/>
    <input type='submit' value='Log In'/>
</form>");
extract ($_POST);
if( !($database=mysql_connect("localhost","root",""))||!(mysql_select_db("st_login",$database))  )
   print("Could not connect");
$query = "INSERT INTO login (firstname, lastname, username,password) VALUES ('$firstname', '$lastname', '$username','$password')";
if(isset($_POST['firstname'] )&&isset($_POST['lastname'])&&isset($_POST['username'])&&isset($_POST['password']) ){
$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];
$username=$_POST['username'];
$password=$_POST['password'];
}


if ( !empty($firstname)&&!empty($lastname)&&!empty($username) &&!empty($password) ){
  if(!($result=mysql_query($query,$database)))
{
    print("Could not execute query");
    die (mysql_error());//ose error
}
else echo "You are logged in successfully";
}
else echo "Fill in all the blank fields";
mysql_close($database);
?>
</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您需要从超全局$_POST数组中获取输入字段,它不会自动显示为本地变量,例如$firstname

因此,在您提交表单之前,应该先使用此类表单:

$firstname = isset($_POST['firstname']) ? $_POST['firstname'] : '';

当然还有其他变量。