我的页面边栏中嵌入了登录表单。 一旦用户使用它登录,我希望它重定向回到他们登录的同一页面。
这很容易实现。但是,当登录功能完成并重定向到原始页面时,它实际上并没有刷新它。登录表单从表单更改为用户信息显示。尽管用户实际上现在已经登录,但它仍然显示登录表单。
我尝试过使用
header ( "refresh:0;url=url.php" );
但是我无法获取用户来自的URL以正确解析并重定向到它。
我正在使用的代码在
之下if( isset( $_POST['location'] ) ) {
$location = htmlspecialchars($_POST['location']);
header( "Location:" .HOME_PATH. urlencode($location) );
}
是否有一种强制刷新的简单方法,或者最好使用像AJAX这样的东西来实现同样的目的。
我认为最简单的方法是使用刷新标头但是我不明白如何实现与我在位置中使用的效果相同的效果。
修改
登录表单检查用户是否已登录并更改为显示而不是登录表单(如果不是)。
<?php if ( isset( $_SESSION['userName'] ) ) { ?>
然后表单发布到php函数。该功能实际上执行用户登录,一旦完成,它将重定向到他们来自的页面。这就是问题所在。返回重定向不会刷新页面,因此表单条件可以更改正在显示的内容。
答案 0 :(得分:2)
header("Location: ...")
不会停止呈现页面。您需要在其后面放置exit
来暂停。