2013-07-15 26 views
0

我想创建一个表格,用户正在选择一个选项让我们说,他会选择他的名字我用阿贾克斯打电话给另一个页面,在这个页面我创建连接并插入答案问题它插入null 代码 index.php文件为什么null在数据库中插入?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>MyDataBase </title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script> 

$(document).ready(function(){ 
$("#mysubmit").click(function(){ 
    $.ajax({ 
     url:"Final.php", 
     type:"POST", 
     success: function(success_array) 
     { 
      alert(" Well Done "); 
     }, 
     error: function(xhr, ajaxOptions, thrownError) 
     { 
      alert(" Didn't work ! "); 
     } 
    }); 
}); 
    }); 

</script> 
    </head> 
    <form method="post" id = "myform"> 
    <input type="radio" name="kname" value="X1" />X1<br /> 
    <input type="radio" name="kname" value="Y1" />Y1<br /> 
    <input type="radio" name="kname" value="A1" />A1<br /> 
    <input type="radio" name="kname" value="G1" />G1<br /> 
    <input type="submit" onclick="save()" id="mysubmit"/> 
    </form> 
    <body> 
    </body> 
    </html> 

Final.php

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     <html xmlns="http://www.w3.org/1999/xhtml"> 
     <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Thanks</title> 
     </head> 

     <body> 
     <?php 
     $con = mysqli_connect("localhost","root","xyz","test"); 
     mysqli_query($con,"INSERT INTO name values ('$_POST[kname]')"); 
     ?> 
     </body> 
     </html> 
+3

**警告**您的代码易受sql注入攻击! –

+2

@ DanielA.White,没有什么比[刚刚访问过的问题](http://stackoverflow.com/q/17664993/)。这仍然很容易受到SQL注入的影响,应该修复。 –

+0

您有SQL注入漏洞。那么你已经做了哪些调试来试图缩小这个范围?你有没有考虑尝试处理MySQL错误,看看问题可能是什么? –

回答

0

你必须通过$_POST['kname']参考kname。

但请!总是逃避你的价值!

+0

你的意思是“参考kname”对不起,我还是新的bie在这个 –

+0

你必须在'kname'周围使用引号,否则编译器会认为'kname'是一个常量。 –

0

当通过ajax提交/发布时,您需要添加您的数据。最简单的是serialize()

var form = $('#myform'); 
$.ajax({ 
    url:"Final.php", 
    type:"POST", 
    data: form.serialize(), 
    ... 

,或者你可以得到一个单一的领域 -

data: {kname: $('#id_of_your_radio').val()}, 

只需确保插入到你的数据库之前,消毒用户数据。

+0

它没有工作,我不认为它有影响 –

+0

你检查了萤火虫(firefox)或开发者控制台(铬等),看看什么是发布'kname'? – Sean

+0

uncaught referenceerror保存未定义 –

相关问题