我有这样的表格:

<form name="myForm" action="#">
     <input type="text" name="firstField" />
     <input type="text" name="secondField" />
     <input type="submit" name="submitButton" />
</form>

我有一个ajax请求:

$('input[type="submit"]').click(function(){
       var serialized = $('form').serialize();
       //ajax request
       $.ajax({
                type : "POST",
                url : "takeAction.php",
                data : serialized,
                succes : function(){
                    alert('done');
                }
       }); 
});

问题是,如果我的任何字段值包含“'”,就像(谁是老板)我的ajax请求无法完成(我正在尝试更新mysql行但代码失败,我得不到错误只是我的行没有更新)。我知道这是关于引用的东西,但我不知道该怎么做。感谢

有帮助吗?

解决方案

问题出在服务器上的PHP代码中,而不是HTML或JavaScript中。

您可能直接将提交的数据值写入SQL查询,是吗?:

$query = sprintf("SELECT * FROM users WHERE user='%s'", $user);

您需要使用准备好的陈述 ,或使用 mysql_real_escape_string() 逃避你的价值观:

$query = sprintf("SELECT * FROM users WHERE user='%s'",
                  mysql_real_escape_string($user));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top