我使用jQuery将数据从客户端发送到服务器并将数据存储在我的数据库中。现在我使用jQuery中的$ .post-function。我使用它像下面的
var queryUpd = "UPDATE settings SET round_duration='10'"
$.post("../../server/test.php", {func: "manipulate", query: queryUpd}, function(json, textStatus)
{
alert(json); //Outputs UPDATE settings SET round_duration =\\\'10\\\'
});
php函数“test.php”很简单:
<?php
echo json_encode($_POST["query"]); //send values to the client
?>
正如你所看到的,php-function获得了一个无效的查询,因为它在\'前面添加了两个反斜杠。那么为什么会发生这种情况呢?我该如何解决这个问题?
答案 0 :(得分:0)
您可能需要指定您获得的是JSON。否则,jQuery猜测,有时它是错误的:
$.post("../../server/test.php", {func: "manipulate", query: queryUpd}, function(json, textStatus)
{
alert(json); //Outputs UPDATE settings SET round_duration =\\\'10\\\'
},"json");
但是,您原来帖子的评论是正确的。您不应该通过ajax发送查询。您应该在检查表单数据后发送表单数据并根据该数据创建查询,以确保它有效。
答案 1 :(得分:0)
如果它是php,那么在你的应用程序的bootstrap中试试
<?php
if (get_magic_quotes_gpc()) {
function stripslashes_gpc(&$value)
{
$value = stripslashes($value);
}
array_walk_recursive($_GET, 'stripslashes_gpc');
array_walk_recursive($_POST, 'stripslashes_gpc');
array_walk_recursive($_COOKIE, 'stripslashes_gpc');
array_walk_recursive($_REQUEST, 'stripslashes_gpc');
}
?>