1

我的页面侧边栏中嵌入了一个登录表单。一旦用户使用它登录,我希望它重定向回他们登录的同一页面。

这很容易实现。但是,当登录功能完成并重定向到原始页面但实际上并没有刷新它时。登录表单从表单更改为用户信息显示。尽管用户实际上现在已经登录,但它仍然显示登录表单。

我试过使用

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 函数。该函数实际上执行用户的登录,一旦完成,它就会重定向到他们来自的页面。这就是问题所在。返回重定向不会刷新页面,因此表单条件可以更改显示的内容。

4

1 回答 1

2

header("Location: ...")不会停止页面的渲染。您需要通过exit在它后面放置一个来停止。

于 2013-09-06T20:20:02.860 回答