PHP -处理POST和头include


PHP - Dealing with POST and header include

假设我有一个用户可以登录的表单,当用户填写表单时,它会返回到同一页面,检查用户名和密码是否错误,如果一切正常,则登录用户。目前,我通过在以下条件下加载表单来做到这一点:

if($_SERVER['REQUEST_METHOD'] != 'POST') {

如果这不是真的,那么检查错误并登录等等

问题是这一切都发生在signin.php。在signin.php的顶部,我包括header.phpconnect.php,它们的作用正如它们的名字所暗示的那样。当我发布回页面时,登录状态的变化不会显示在头文件中(该文件中有一个用户栏,与本网站的用户栏性质相似)。sign in works,但我必须导航到标题显示"已登录"而不是"登录/注册"或其他内容的不同页面。

我是否以错误的方式去做这件事,或者只是我需要添加一些东西来更新我的头部?欢呼。

p。S:我对php很陌生,所以最好不要太复杂。

您可能需要在POST代码发生后重定向(使用header()):

if($_SERVER['REQUEST_METHOD'] != 'POST') {
    ..
}
else {
    ..
    header('Location: ' . basename($_SERVER['REQUEST_URI']));
    exit;
}

你的设置有两个问题,违反了非常基本但严格的web开发规则

    在任何POST请求之后都应该有重定向。可以按照另一个答案来做。
  1. 在所有逻辑完成之前必须没有显示HTML。因此,您的header.php应该被称为AFTER表单检查,而不是在它之前。