2013-11-10 91 views
0
<?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); 
    ?> 

错误正在逐渐未定义索引错误

说明:未定义变量:NAME1在C:\ XAMPP \ htdocs中\塞尔瓦\ jqsty.php 第13行
说明:未定义可变:PHONE1在C:\ XAMPP \ htdocs中\塞尔瓦\ jqsty.php 第13行
说明:未定义变量:EMAIL1在C:\ XAMPP \ htdocs中\塞尔瓦\ jqsty.php 第13行
说明:未定义可变:pass1在C:\ xampp \ htdocs \ selva \ jqst中y.php 除非形式张贴线13

+0

感谢ü这么多的所有乌尔答案 – selva1990

回答

0

你检查的$_POST['submit']存在,如果它的发现设置一些变量。然后你在条件块外执行你的mysql查询,所以如果找不到$ _POST变量,你会得到undefined variable错误。

尝试

<?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); 
    } 
    ?> 
+0

感谢ü所以很多工作 – selva1990

1

,在这个变量将永远不会有一个值:

$query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')"; 

如果你需要等待POST执行查询,放您if里面的代码:

$conn = mysql_connect("localhost","root",""); 

if(!$conn) 
    die("cannot connect"); 

$db = mysql_select_db("ticket",$conn); 

if(!$db) 
    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); 

    if(!$result) 
     die("Error in pushing".mysql_error()); 
} 

mysql_close($conn); 
0

把MySQL查询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); 
} 
?> 

当不submited的形式,你的变量没有被定义,您要查询数据库与他们。因此,您将所有内容都放在if语句中,以便只有在提交表单才能执行查询时才执行。你也容易受到mysql注入的影响,使用mysql_real_escape_string函数或使用mysqli prepared语句。

+0

非常感谢你 – selva1990

1

我认为这个问题是你没有进入,如果循环,因为你没有你的提交按钮命名的更多信息: 试试这个

<input type="submit" class="submit1" value="Submit" name="submit"/>