有时,HTML表单无法提交任何POST数据。
表单本身没有任何问题,完全相同的表单每天提交数百次没有任何问题。
当用户抱怨我的网站功能时出现此错误。为了解决这个问题,我添加了一些电子邮件提醒,其中提供了$_GET
,$_POST
,$_SESSION
和$_SERVER
数组的副本。由此我发现$_POST
数据是空的。
我的第一个想法是一些奇怪的浏览器问题但是在网站后面运行的数据库显示,运行相同浏览器的同一个用户在错误的几分钟内成功提交了表单。
这可能是巧合,但这总是发生在Safari上。它在Safari 5.1.9上发生过几次,在Mobile Safari 7.0上发生过一次。
感谢您的帮助。
针对一些评论的一些更新:
HTML表单(基本上用户有10个号码,他们必须输入10个号码):
<input type="hidden" name="type" value="329"/>
<input type="hidden" name="code" value="0"/>
<input type="hidden" name="start[]" value="2"/>
<input type="hidden" name="start[]" value="5"/>
<input type="hidden" name="start[]" value="8"/>
<input type="hidden" name="start[]" value="1"/>
<input type="hidden" name="start[]" value="3"/>
<input type="hidden" name="start[]" value="9"/>
<input type="hidden" name="start[]" value="6"/>
<input type="hidden" name="start[]" value="10"/>
<input type="hidden" name="start[]" value="4"/>
<input type="hidden" name="start[]" value="7"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="number" name="input[]" maxlength=4 autocomplete="off" step="any" min="0"/>
<input type="submit" value="Finish">
</form>
PHP文件:
//First check the user is logged in
if(isset($_SESSION['user_id'])){
//Check for the POST data
if(!isset($_POST['type'])){
//No post data - why?!
}
//Do stuff...
}
希望这能清除一些事情