Php mysql查询中的未定义索引错误
除非发布表单,否则此表单中的变量永远不会有值:Php mysql查询中的未定义索引错误,php,mysql,Php,Mysql,除非发布表单,否则此表单中的变量永远不会有值: <?php $conn=mysql_connect("localhost","root","") or die("cannot connect"); $db=mysql_select_db("ticket",$conn) or die("no db"); if (isset($_POST['submit'])) { $name1=$_POST['name']; $phone1=$_POS
<?php
$conn=mysql_connect("localhost","root","")
or die("cannot connect");
$db=mysql_select_db("ticket",$conn)
or die("no db");
if (isset($_POST['submit']))
{
$name1=$_POST['name'];
$phone1=$_POST['phone'];
$email1=$_POST['email'];
$pass1=$_POST['password'];
}
$query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";
$result=mysql_query($query)
or die("Error in pushing".mysql_error());
mysql_close($conn);
?>
如果需要等待帖子执行查询,请将该代码放入If
:
$query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";
您正在检查是否存在
$\u POST['submit']
,并设置一些变量(如果找到)。然后在条件块外执行mysql查询,因此如果未找到$\u POST变量,您将得到未定义变量
错误
试一试
将mysql查询放在if语句中,如下所示:
<?php
$conn=mysql_connect("localhost","root","")
or die("cannot connect");
$db=mysql_select_db("ticket",$conn)
or die("no db");
if (isset($_POST['submit']))
{
$name1=$_POST['name'];
$phone1=$_POST['phone'];
$email1=$_POST['email'];
$pass1=$_POST['password'];
// This code now inside if block
$query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";
$result=mysql_query($query)
or die("Error in pushing".mysql_error());
mysql_close($conn);
}
?>
当表单未提交时,您的变量未定义,您正在使用它们查询数据库。因此,您将所有内容都放在if语句中,以便只有在提交表单时,查询才会执行。此外,您还容易受到mysql注入的攻击,请使用mysql\u real\u escape\u string函数或使用mysqli prepared语句。我认为问题在于您没有进入if循环,因为您没有将提交按钮命名为:
试试这个
if(isset($_POST['submit'])) {
$name1=$_POST['name'];
$phone1=$_POST['phone'];
$email1=$_POST['email'];
$pass1=$_POST['password'];
$query="INSERT INTO `register`(`name`,`phone`,`email`,`pass`) VALUES('$name1','$phone1','$email1','$pass1')";
$result=mysql_query($query) or die("Error in pushing".mysql_error());
mysql_close($conn);
}
?>
非常感谢您的回答
if(isset($_POST['submit'])) {
$name1=$_POST['name'];
$phone1=$_POST['phone'];
$email1=$_POST['email'];
$pass1=$_POST['password'];
$query="INSERT INTO `register`(`name`,`phone`,`email`,`pass`) VALUES('$name1','$phone1','$email1','$pass1')";
$result=mysql_query($query) or die("Error in pushing".mysql_error());
mysql_close($conn);
}
?>
<input type="submit" class="submit1" value="Submit" name="submit"/>