我无法获得更大的功能来在Chrome以外的浏览器中发布表单详细信息。我已将问题缩小到我的帖子,重定向,获取代码部分。
我已经使用这个包含表单和PRG语句的小函数重新创建了问题:
function testForm(){
session_start();
error_reporting(E_ALL); ini_set('display_errors',1);
if(count($_POST) > 0) {
$_SESSION['testFormText'] = $_POST['testFormText'];
if(isset($_POST['testSubmit'])){
$_SESSION['testSubmit'] = 1;}
header("HTTP/1.1 303 See Other");
header("Location: https://$_SERVER[HTTP_HOST]/test-form/");
die();
}
elseif (isset($_SESSION['testFormText'])){
$text = $_SESSION['testFormText'];
$submit = $_SESSION['testSubmit'];
/*
Put database-affecting code here.
*/
session_unset();
session_destroy();
}else{
$text = null;
}
echo '<div class="testForm">
<form method="post" action="">
<input type="text" name="testFormText"/>
<input type="submit" name="testSubmit" value="submit">
</form>
</div>
';
echo $text;
}
该功能在chrome中正常运行。在输入中输入内容并提交表单。数据发送到$_POST
,然后设置为会话变量。如果会话已设置,则在页面从提交表单重定向回自身后,它将作为变量$ text回显。
然而,这不适用于firefox和safari。如果有人可以建议如何正确地将$_POST
设置为会话,那将非常感激。