PHP Post变量具有重复的munged数据

时间:2012-11-26 22:37:15

标签: php jquery ajax apache post

我正在开发一个启动ajax调用的简单链接。这工作正常,直到我们的Ubuntu服务器退役;我们有一个新的,“相同的”服务器。当我检查POST中的内容时,问题发生在服务器端。 $ _POST [“scan_date”]的预期回声是:2012-11-26

实际回应是:2012-11-26scan_date = 2012-11-26

这是下面PHP代码中的实际回显。 客户端警报给出了这个:2012-11-26,这就是我的期望。 所以,似乎服务器端正在发生一些事情。我希望回声是“2012-11-26”而不是“2012-11-26scan_date = 2012-11-26”

我无法弄清楚为什么POST数据会像那样被提升。

PHP:

$date = isset($_POST["scan_date"]) ? $_POST["scan_date"] : date("Y-m-d");
echo $date;  //produces 2012-11-26scan_date=2012-11-26 which is bad

JQuery的:

var val = $(this).attr('value');
dateSelected = val.replace(/facterOption-/g, "");
dateSelected = $.trim(dateSelected);
alert(dateSelected);  //alerts 2012-11-26 which is good

$.ajax({
type: "POST",
dataType: 'json',
url: 'https://someurl',
data: {
scan_date: dateSelected
}
})

更新:我们尝试过完全在这个PHP项目的代码框架之外的命令行curl调用,并且注意到了相同的结果。也许Apache可能与此有关。

此外,我们发现添加第二个POST参数和值可以解决这个问题。

3 个答案:

答案 0 :(得分:1)

这是一个现有的错误。

https://bugs.php.net/bug.php?id=22773

解决方案是:

  • 将另一个虚拟名称/值对发送到帖子
  • 要求> IE6
  • 如果适用,请使用GET代替POST

答案 1 :(得分:1)

在PHP文件中,尝试更改:

echo $date;

echo $_POST["scan_date"];

只是为了看看PHP文件正在接收什么。

答案 2 :(得分:1)

Chrome developer tools network tabFirebug for Firefox将帮助您调试请求。看一下正在发送的请求。 PHP中的某些内容不太可能会将内容附加到您的请求中。最有可能是JavaScript。