我在使用php从表单中将数据插入myqsl数据库时遇到问题。 此错误显示:
有人能告诉我这段代码有什么问题吗? 我使用extract($ _POST)从超全局$ _POST数组中获取输入字段。当我将表单代码与php部分代码分开并将它们放在单独的php文件中时,它正常工作并且错误没有& #39; t显示。有人能告诉我在同一个php文件中执行它们有什么问题吗? 这是我在php中的代码:
<html>
<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;
答案 0 :(得分:0)
您需要从超全局$_POST
数组中获取输入字段,它不会自动显示为本地变量,例如$firstname
。
因此,在您提交表单之前,应该先使用此类表单:
$firstname = isset($_POST['firstname']) ? $_POST['firstname'] : '';
当然还有其他变量。