PHP - 处理POST和标题包括

时间:2011-09-22 09:10:11

标签: php post include

假设我有一个用户可以登录的表单,当用户填写表单时,它会回发到同一页面,使用用户名和密码检查错误,如果一切都膨胀,则记录下来。目前我正是通过在这种条件下加载表单来完成此操作:

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

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

问题是这一切都发生在signin.php。在signin.php的顶部,我包含了header.phpconnect.php,这正是他们的名字所暗示的。当我回发到页面时,登录状态的更改不会显示在头文件中(此文件中有一个用户栏,与本网站上的用户栏类似)。登录有效,但我必须导航到另一个页面,标题显示“已登录”而不是“登录/注册”或其他任何内容。

我是否以错误的方式解决了这个问题,还是只需要添加一些内容来更新标题?欢呼声。

P.S:我对php很陌生,所以不太复杂的东西会更好。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

您的设置存在2个问题,违反了基本但严格的网络开发规则

  1. 任何POST请求后都应该重定向。可以按照其他答案中的说明完成。
  2. 在完成所有逻辑之前,必须没有显示HTML。因此,您的header.php应该在表单检查之后调用,而不是之前。