我正在开发一个包含html表单的PHP脚本.
如果不是所有字段都以正确的方式填充,则脚本将发出错误信号,并使用头函数重定向回同一页面,并使用get方法将错误变量设置为yes:
header("Location: registration_page.PHP?error_empty=yes");
我的脚本有一个错误处理部分,它突出显示包含错误的字段,但我想保持字段的值正确填充.
正如我在其他问题中找到的那样,我正在实现此功能:
How can I keep a value in a text input after a submit occurs?
但问题是,当页面重新打开时,表单将不包含旧值.
我的问题是:有没有人知道头函数是否取消了$_REQUEST数组中的全局变量?
你知道我可以采用什么样的解决方案吗?也许会话?
提前致谢,
利玛窦!
最佳答案
$_COOKIES将继续设置,但$_POST&当客户端移动到新页面时,$_GET将被销毁.如果需要保留它们,则必须先将它们存储到$_SESSION中,然后再调用重定向.
session_start();
$_SESSION['last_post'] = $_POST;
header("Location: http://example.com");
exit();
// On the redirected page,use the stored POST values and unset them in $_SESSION
session_start();
if (empty($_POST) && isset($_SESSION['last_post'])) {
$post = $_SESSION['last_post'];
unset($_SESSION['last_post']);
}
else $post = $_POST;