假设我有一个用户可以登录的表单,当用户填写表单时,它会回发到同一页面,使用用户名和密码检查错误,如果一切都膨胀,则记录下来。目前我正是通过在这种条件下加载表单来完成此操作:
if($_SERVER['REQUEST_METHOD'] != 'POST') {
如果不是这样,那么检查错误并登录等。
问题是这一切都发生在signin.php
。在signin.php
的顶部,我包含了header.php
和connect.php
,这正是他们的名字所暗示的。当我回发到页面时,登录状态的更改不会显示在头文件中(此文件中有一个用户栏,与本网站上的用户栏类似)。登录有效,但我必须导航到另一个页面,标题显示“已登录”而不是“登录/注册”或其他任何内容。
我是否以错误的方式解决了这个问题,还是只需要添加一些内容来更新标题?欢呼声。
P.S:我对php很陌生,所以不太复杂的东西会更好。
答案 0 :(得分:3)
您可能需要在POST代码发生后重定向(使用header()):
if($_SERVER['REQUEST_METHOD'] != 'POST') {
..
}
else {
..
header('Location: ' . basename($_SERVER['REQUEST_URI']));
exit;
}
答案 1 :(得分:1)
您的设置存在2个问题,违反了基本但严格的网络开发规则