0

我正在使用此脚本登录开发中的网站:http ://www.php-login.net/

我正在使用简单的登录,如下所示:

 require_once("config/db.php");

 // load the login class
 require_once("classes/Login.php");

 // create a login object.
 $login = new Login();

// ... ask if we are logged in here:
if ($login->isUserLoggedIn() == true) {    



$userid = $_SESSION['user_id'];



$time = Users::getData($userid);

include("views/logged_in.php");    
} else {
// the user is not logged in...
include("views/not_logged_in.php");
}

该脚本将登录 ID 保存在会话中,然后我将其用作函数 getData 中的参数。这很好用,问题是当我 a) 刷新页面 b) 使用浏览器中的前进/后退按钮导航时。

我不断收到“确认重新发送表单......”消息弹出,这当然不是很用户友好。

我怎样才能避免这种情况?

4

1 回答 1

1

发布表格后,您必须使用header和重定向网站。

如果用户登录会发生这种情况,并且在登录后立即单击注销。然后,当您在浏览器中按下返回按钮时,会发送带有 $_POST 他日志记录数据的表单,并且浏览器会询问您是否要再次发送该表单。

使用此解决方案避免再次发送表单(单击后退按钮或按下 F5(刷新)时):

当您使用登录数据处理表单时,请重定向到同一页面或主页(它在您身上)。采用

header("HTTP/1.1 302 Found");
header('Location: '.$url_to_redirect);

然后,当他点击返回按钮或刷新页面时,它不会再次发送登录数据,因此不会再次处理登录。

于 2013-11-08T09:16:49.633 回答