相关疑难解决方法(0)

JavaScript文件上传大小验证

有没有办法在使用JavaScript上传之前检查文件大小

javascript validation file-upload

235
推荐指数
8
解决办法
43万
查看次数

PHP缺少一些$ _POST值但存在于php:// input中

我有一个非常大的html表单(包含行的表,其中包含多个输入),我需要通过POST请求提交给PHP脚本.问题是PHP的$ _POST超全局中没有一些值没有出现.

我检查(使用Firebug扩展),这些值实际上是由浏览器发送到服务器的.

$ _POST被填充,但有些值只是缺失.

我检查了什么是原始请求使用:

$raw_post = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)

并且返回的字符串具有值.它们只是没有解析成$ _POST数组.我注意到的奇怪的是,似乎php://输入值在一定长度后被切断,其余的字符串不会通过$ _POST.

我想到了post_max_size和memory_limit并将它们设置为大值:

memory_limit = 256M
post_max_size = 150M
但根据php文档,如果请求的大于post_max_size,$ _POST不应包含任何值.

由于形式和请求的大尺寸我不能在这里发布,但我可以发布用于调试问题的PHP脚本:


var_dump($file = file_get_contents('php://input'));
var_dump($_POST);
//... then i parsed the $file
Run Code Online (Sandbox Code Playgroud)

服务器版本:Apache/2.2.9(Debian)
PHP版本:PHP 5.3.2-0.dotdeb.2

可以enyone解释这种奇怪的PHP行为的原因,我应该怎么做(更改PHP设置,代码?)在处理表单时使用$ _POST数组?

编辑:要明确:不仅缺少价值观.$ _POST也不包含这些键.

原始帖子的片段:

t_dodparam%5B198%5D=&t_dodparam2%5B198%5D=&t_kolejnosc%5B198%5D=199&n_indeks=201&n_wartosc=testtesttest
Run Code Online (Sandbox Code Playgroud)

密钥't_dodparam'在post中,它有密钥198.缺少其余的参数(ex t_dodparam2在post中,但它没有198这样的密钥,并且$ _POST中没有n_wartosc这样的密钥)

php post

49
推荐指数
4
解决办法
7万
查看次数

jQuery post请求中断:只有一半的post参数到达

我在LAMP环境中发现了一个奇怪的现象.
在前端,我用jQuery执行一个AJAX post请求,如下所示:

$.post('save.php', {data1: d1, data2: d2, [...],  dataN: dN})
Run Code Online (Sandbox Code Playgroud)

的变量d1,以dN从网站(例如,从文字输入,文字区域,复选框等)与jQuery预先收集.

该文件save.php将post参数data1传递给dataN一个查询并将其保存在数据库中.

除非我在请求期间更改页面(例如,通过单击链接),否则请求大约需要500毫秒并且没有问题.

通常情况下,我希望请求被中止和忽略(这很好)但是(这是奇怪的行为)请求似乎已经完成,但只有部分数据被传输并因此被保存.

这意味着,例如,PHP脚本只保存data1data5并设置data6dataN空.
这个问题似乎已经被AJAX请求(不是PHP脚本),因为场引起$_POST['data6'],以$_POST['dataN']在PHP中没有设置在这种情况下.

所以我的问题:
为什么会发生这种情况(这是预期的行为)?
我怎么能避免呢?

更新
问题既不是jQuery也不是php.jQuery正确收集值并尝试将它们发布到php.我刚刚验证了它 - 它有效.另一方面,php脚本处理它按预期获得的所有内容 - 它只是没有收到整个请求.
所以问题必然是被中断的请求本身.与我预期它不会中止或失败不同,它仍会传输所有数据直到中断.
然后php获取此帖子数据并开始处理它 - 显然缺少一些信息.

更新2
我加入一个参数固定的问题eofdataN,并检查它是否是PHP设置.通过这种方式,我可以确保传输了整个请求.
然而,这并不能解决我仍然不理解的问题的根源.
有人帮忙吗?

php mysql ajax jquery post

25
推荐指数
3
解决办法
5233
查看次数

标签 统计

php ×2

post ×2

ajax ×1

file-upload ×1

javascript ×1

jquery ×1

mysql ×1

validation ×1