Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 - Fatal编程技术网

Php Post数据不等于表单数据

Php Post数据不等于表单数据,php,Php,我可能错过了什么,但我不明白发生了什么 我的php脚本中的$\u POST变量中的值与表单数据中发送的值不匹配 这就是我正在做的。我向同一个php脚本发送两个连续的请求。除一个字段外,两个请求中的所有表单数据值都相同。但是在php脚本中,$\u POST变量在两个请求中对该字段具有相同的值 以下是我在向服务器发送第一个请求时发送的原始表单数据: sEcho=1&iColumns=1&sColumns=&iDisplayStart=0&idisplayslength=20&mDataProp\u

我可能错过了什么,但我不明白发生了什么

我的php脚本中的
$\u POST
变量中的值与表单数据中发送的值不匹配

这就是我正在做的。我向同一个php脚本发送两个连续的请求。除一个字段外,两个请求中的所有表单数据值都相同。但是在php脚本中,
$\u POST
变量在两个请求中对该字段具有相同的值

以下是我在向服务器发送第一个请求时发送的原始表单数据:

sEcho=1&iColumns=1&sColumns=&iDisplayStart=0&idisplayslength=20&mDataProp\u 0&sSearch=&bRegex=false&sSearch\u 0=&bRegex\u 0=false&bsearcable\u 0=true&fromSid=1050&fromTable=file2.xlsx&toSid=1049&toTable=file1.xlsx&fromTransInput=columnToMatch&toTransInput=columnToMatch&toTransInput=columnToMatch&action=getDistinctFromTable 以下是我在php脚本中获得的原始输入内容:

sEcho=1&iColumns=1&sColumns=&iDisplayStart=0&idisplayslength=20&mDataProp\u 0&sSearch=&bRegex=false&sSearch\u 0=&bRegex\u 0=false&bsearcable\u 0=true&fromSid=1050&fromTable=file2.xlsx&toSid=1049&toTable=file1.xlsx&fromTransInput=columnToMatch&toTransInput=columnToMatch&toTransInput=columnToMatch&action=getDistinctToTable=20”

注意,action值不匹配,我在php脚本中的值实际上是在第二个请求中发送的action值

以下是第二个请求表单数据:

sEcho=1&iColumns=1&sColumns=&iDisplayStart=0&idisplayslength=20&mDataProp\u 0&sSearch=&bRegex=false&sSearch\u 0=&bRegex\u 0=false&bsearcable\u 0=true&fromSid=1050&fromTable=file2.xlsx&toSid=1049&toTable=file1.xlsx&fromTransInput=columnToMatch&toTransInput=columnToMatch&toTransInput=columnToMatch&action=getDistinctToTable=20

下面是第二个请求的php scrip的原始输入内容:

sEcho=1&iColumns=1&sColumns=&iDisplayStart=0&idisplayslength=20&mDataProp\u 0&sSearch=&bRegex=false&sSearch\u 0=&bRegex\u 0=false&bsearcable\u 0=true&fromSid=1050&fromTable=file2.xlsx&toSid=1049&toTable=file1.xlsx&fromTransInput=columnToMatch&toTransInput=columnToMatch&toTransInput=columnToMatch&action=getDistinctToTable=20

知道发生了什么事吗

更新: 下面是一些代码:

在客户机上,我有以下内容:

对于第一个请求:

$.ajax({ url:“../dataMatchChecker/getDataTables.php”, 数据:[{“名称”:“sEcho”,“值”:1},{“名称”:“iColumns”,“值”:1},{“名称”:“sColumns”,“值”:“},{”名称”:“iDisplayStart”,“值”:0},{“名称”:“iDisplayLength”,“值”:20},{“名称”:“mDataProp_0”,“值”:0},{“名称”:“sSearch”,“值”:“},{”名称”:“假},{“名称”:“假},{b可搜索的{u 0”,“值”:true},{“名称”:“fromSid”,“值”:“1050”},{“名称”:“fromTable”,“值”:“file2.xlsx”},{“名称”:“toSid”,“值”:“1049”},{“名称”:“toTable”,“值”:“file1.xlsx”},{“名称”:“fromTransInput”,“值”:“columnToMatch”},{“名称”:“toTransInput”,“值”:“columnToMatch”},{“名称”:“动作”,“值”:“getdistinctromtable”},{页面长度“,”值“:20}], 键入:“post”, 数据类型:“json”, 成功:函数(json){ //在这里做些工作 } }))

关于第二项请求:

$.ajax({ url:“../dataMatchChecker/getDataTables.php”, 数据:[{“名称”:“sEcho”,“值”:1},{“名称”:“iColumns”,“值”:1},{“名称”:“sColumns”,“值”:“},{”名称”:“iDisplayStart”,“值”:0},{“名称”:“iDisplayLength”,“值”:20},{“名称”:“mDataProp_0”,“值”:0},{“名称”:“sSearch”,“值”:“},{”名称”:“假},{“名称”:“假},{b可搜索的_0,{value:true},{name:“fromSid”,“value:“1050”},{name:“fromTable”,“value:“file2.xlsx”},{name:“toSid”,“value:“1049”},{name:“toTable”,“value:“file1.xlsx”},{name:“fromTransInput”,“value:“columnToMatch”},{name:“toTransInput”,“value:“columnToMatch”},{页面长度“,”值“:20}], 键入:“post”, 数据类型:“json”, 成功:函数(json){ //在这里做些工作 } }))

目前在我的服务器上,我只使用var_dump
$\u POST
变量(我还使用var_dump我上面介绍的原始内容):

变量转储($\u POST)

$postdata=文件\u获取\u内容(“php://input”

var_dump($postdata)


这些ajax请求彼此之间的距离有多远?可能很小,但是什么时候检查结果,在第一个请求之后和第二个请求之后,还是仅在第二个请求之后?@lampwins,它们之间的距离为5毫秒。我检查两个请求的结果。奇怪的是,我在开发人员工具的Headers选项卡中看到了正确的值,但却看到了错误的值在响应选项卡中,其中I
var\u dump($\u POST)
。我无法在帖子中发布图片,但基本上我在“网络”选项卡中选择了一个请求,然后比较了“标题”选项卡中的表单数据和“响应”选项卡中的
$\u post
转储,但它们不匹配。我的最佳猜测是服务器端出现了一些不稳定的情况。试试这个,而不是var\u dump,将响应写入文件,这样做会更好当请求进来时,我会给你一个具体的结果。在那之后,我会将请求隔开一点并尝试。比如说间隔几秒钟或更长时间。谢谢@lampwins的建议。结果证明它在Firefox中有效,但在Chrome中无效。Chrome会缓存ajax请求吗?所以我最后做的是在ulr中附加时间戳我在ajax请求中调用它。