我有一个使用CodeIgniter编写的PHP应用程序,遇到了以下问题。在使用iPad提交表单时,有时会丢失POST数据。我已经尝试了四种不同的访问POST数据的方法。
print_r($this->input->post());
print_r($_POST);
print_r(file_get_contents('php://input'));
print_r($_REQUEST);
所有的搜索都没有返回结果或者是一个空数组。 这个问题似乎只出现在使用iPad或iPhone时,不过在桌面版Safari上进行50次以上的测试中,曾经发生过一次。而在PC浏览器上进行100次左右的测试(包括Firefox、Chrome和IE),都没有出现过这个问题,只有在Safari中出现了一次。
表单的代码;
<form id="email_report_form" name="email_report_form" method="post" accept-charset="utf-8" action="/handleajax/email_page" class="email_report_form ajaxform" onsubmit="return validate();">
<div class="form_step_container clearfix">
<div class="element clearfix">
<div class="col_left">
<label>Email: <span class="required">*</span></label>
</div>
<div class="col_right">
<input type="text" name="form_email_to" id="form_email_to" />
<div> </div>
<label>Separate multiple email addresses with a comma</label>
</div>
</div>
<div class="element clearfix">
<div class="col_left">
<label>Your Message:</label>
</div>
<div class="col_right">
<textarea name="form_email_message" cols="125" rows="5" onkeypress="return checkLength(event, this, 1000);"></textarea>
<label>(Maximum of 1000 characters)</label>
<br />
<input type="hidden" name="redirect_path" id="redirect_path" value="" />
<input type="submit" value="Send" class="btn btn-primary" />
</div>
</div>
</div>
<div class="element clearfix">
<i>Information entered in this form will not be used for marketing purposes or passed to third parties.</i>
</div>
</form>
在 onSubmit 函数中编写 validate() 代码。
function validate() {
element = document.getElementById("form_email_to");
addresses = element.value.split(",");
for (var i = 0; i < addresses.length; i++) {
address = addresses[i].replace(/^\s*|\s*$/g, "");
if (!validateEmail(address)) {
alert('The email address "' + address + '" is invalid.');
element.focus();
return false;
}
}
if (window.location.hash.length > 2) {
$('#redirect_path').val(window.location.hash.substring(2));
} else {
$('#redirect_path').val(window.location);
}
$('#email_report').slideUp();
return true;
}
表单提交的函数代码:
public function email_page() {
echo "<br/>ci<br/>";
print_r($this->input->post());
}
如您所见,这里是我输出帖子数据的地方,但此时数据已经丢失。 有人知道我为什么会遇到这个问题以及如何解决吗?