Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $.post添加了双反斜杠_Php_Jquery - Fatal编程技术网

Php $.post添加了双反斜杠

Php $.post添加了双反斜杠,php,jquery,Php,Jquery,我使用jQuery将数据从客户端发送到服务器,并将数据存储在数据库中。现在我使用jQuery中的$.post函数。我使用它的方式如下 var queryUpd = "UPDATE settings SET round_duration='10'" $.post("../../server/test.php", {func: "manipulate", query: queryUpd}, function(json, textStatus) { alert(json); //Output

我使用jQuery将数据从客户端发送到服务器,并将数据存储在数据库中。现在我使用jQuery中的$.post函数。我使用它的方式如下

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 function test.php很简单:

<?php
  echo json_encode($_POST["query"]);  //send values to the client
?>

如您所见,php函数得到一个无效的查询,因为它在\'前面添加了两个反斜杠。那么为什么会发生这种情况,我如何解决这个问题呢?

您可能需要指定返回的是JSON。否则,jQuery会猜测,有时会出错:

$.post("../../server/test.php", {func: "manipulate", query: queryUpd}, function(json,    textStatus) 
     {
    alert(json); //Outputs UPDATE settings SET round_duration =\\\'10\\\'           
     },"json");

然而,你原来帖子上的评论是正确的。您不应该通过ajax发送查询。在检查表单数据以确保其有效后,您应该发送表单数据,并基于该数据创建查询。

如果是php,请尝试应用程序引导中的某个地方

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

您是否启用了MAGIC_QUOTES?请注意,这是一个巨大的安全漏洞。将SQL从Javascript传递到服务器是一个无法形容的坏主意。@enne87:{函数:操纵,查询:'DROP DATABASE DATABASE;'}。你的数据库和你的网站都会爆炸。@lonesomeday:我不知道。。。我有点喜欢能够远程彻底地攻击我不喜欢的站点……好吧,但是我发送给服务器的字符串肯定是错误的,否则它会执行我的查询。为什么它会执行你的查询?test.php所做的唯一一件事就是用JSON编码查询并将其发送回。现在是的,但实际上有代码使其执行此查询。它可以在我的本地机器上工作,但不能在远程服务器上工作。如果它是一个dev-to-live问题,那么它可能在live服务器的PHP配置中有所不同。但我仍然认为服务器端代码应该创建查询。否则,有什么可以阻止我将下拉表设置发布到您的php页面?你是对的,当然,戴夫,不幸的是,我现在没有时间更改代码,所以我希望你对我好一点,不要把我的桌子掉了:提前谢谢。