"header()"php函数是否取消设置全局变量?

Mat*_*teo 5 html php forms post get

我正在开发一个包含html表单的php脚本.

如果不是所有字段都以正确的方式填充,则脚本将发出错误信号,并使用头函数重定向回同一页面,并使用get方法将错误变量设置为yes:

header("Location: registration_page.php?error_empty=yes");
Run Code Online (Sandbox Code Playgroud)

我的脚本有一个错误处理部分,它突出显示包含错误的字段,但我想保持字段的值正确填充.

正如我在其他问题中找到的那样,我正在实现此功能:

提交后如何在文本输入中保留值?

但问题是,当页面重新打开时,表单将不包含旧值.

我的问题是:有没有人知道头函数是否取消了$ _REQUEST数组中的全局变量?

你知道我可以采用什么样的解决方案吗?也许会话?

提前致谢,

利玛窦!

Mic*_*ski 8

$_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;
Run Code Online (Sandbox Code Playgroud)