大家好,我正在使用CodeIgniter框架,我有一个问题,在注销后,会话已经被销毁,并重定向到登录表单,并在重定向到登录表单后,浏览器返回按钮可以备份到仪表板,但有错误,因为会话是已经被摧毁了。所有我想要的是禁用浏览器的后退按钮或任何我以前不能加载的东西。我读过关于这个问题的其他帖子,并尝试了他们的解决方案,但它不起作用。我已经根据我在构造函数的其他帖子中读到的内容粘贴了这段代码。
The code that I've seen from the post and posted in my constructor :
header("cache-Control: no-store, no-cache, must-revalidate");
header("cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
这是我的注销:
$sess_array = array(
'username' => ''
);
$this->session->unset_userdata('logged_in', $sess_array);
$this->session->sess_destroy();
redirect('auth', 'refresh');
以下是我的仪表板:
<li>
<a href="<?= base_url('auth/logout') ?>"><i3 class="glyphicon glyphicon-off"></i3> Logout</a>
</li>
首先,当您成功登录到管理面板时,设置userdata会话值。在登录时完成所有验证后,请使用此行
美元这个-
你可以只做一件事,以避免直接登录蚂蚁的页面的您的用户面板或管理面板,只需使一个构造函数在您的管理控制器像这样
public function __construct()
{
parent::__construct();
if(! $this->session->userdata('admin_id')){
return redirect('login_controller');//your login controller which have login page as view in index function//
}
}
并按如下方式使用注销功能:
public function logout()
{
$this->session->unset_userdata('admin_id');
return redirect('login_controller');
}
通过这种方式,当您从管理面板注销并尝试使用后退按钮或尝试直接调用任何管理面板页面或它不会打开的函数后,它对我有效,并且仍然在用户和管理面板制作中使用此代码
您试图解决错误的问题:如果注销后返回会导致一个充满错误的页面,直接进入该页面会导致同样的问题。
这种情况永远不会发生,相反,当有人试图打开未登录时不应打开的页面时,应将访问者定向到登录页面。
除此之外,您不应该干扰用户的浏览器体验。因此,即使您可以,也不应禁用“后退”按钮。即使可以,也可以通过禁用javascript(例如…)来轻松规避。
我很想实现这个选项,但效果不好。所以我在这上面实现了新的逻辑。
简单地检查会话是在每个主要方法中设置的。下面的代码帮助你
注销中(在控制器中定义)
function __construct()
{
parent::__construct();
ob_start(); # add this
}
public function logout()
{
$this->load->driver('cache');
$this->session->sess_destroy();
$this->cache->clean();
ob_clean();
redirect('home'); # Login form or some other page
}
在仪表板(功能)
public function home()
{
$logged_in = $this->session->userdata('logged_in');
if($logged_in != TRUE || empty($logged_in))
{
#user not logged in
$this->session->set_flashdata('error', 'Session has Expired');
redirect('user_logging'); # Login view
}
else
{
#user Logged in
$this->load->view("viewname",$data);
}
}
登录中(功能)
$session = array(
'username' => $name,
'logged_in' => TRUE
);
$this->session->set_userdata($session);
问题内容: 我在Django中使用python,我希望重定向用户在注销后单击“后退”按钮时重定向到登录页面。如何实现呢?在哪里写代码? 要测试django管理员是否处理此..i,请先登录django admin ..注销,然后单击“后退”按钮,然后我就可以看到上一页。为什么django管理员无法处理此问题。 这是在django admin中注销的Ccode: 问题答案: 终于找到了解决方案: 这将
问题内容: 如何禁用浏览器的“后退”按钮(跨浏览器)? 问题答案: 这个问题是非常相似,这一个 … 您需要强制缓存过期才能正常工作。将以下代码放在页面代码后面。
我开发了一个简单的用户管理系统。在用户登录时,我设置了数据库会话。我也会在注销时销毁它们。我的缓存也被关闭。即使当我点击浏览器上的后退按钮时,我可以看到我的仪表板,当我点击任何链接时,它应该将我重定向到登录,但它首先显示仪表板,这是一个bug。 登录中的控制器。php: 在match.php中查看页面: 当我点击后退按钮时,它会再次显示登录页面。
问题内容: 我在www.darknovagames.com上运行了基于浏览器的游戏。最近,我一直在努力使用CSS重新格式化该网站,试图让其所有页面都根据HTML标准进行验证。 我一直在想着要在页面左侧放置AJAX导航菜单的想法(而不是每次都将用户带到一个单独的页面,而是需要重新加载标题和导航栏,而这几乎是不会改变的),我知道如果这样做,我可能会破坏浏览器中的“前进/后退”按钮。我的问题是,我应该继
我以编程方式生成了许多按钮(一些按钮用于增加值,而另一些按钮用于减少值),当它们调整的值达到最大值或最小值时,我会禁用这些按钮。(即,当达到最大值时,“增加”按钮被禁用,而当达到最小值时,“减少”按钮被禁用。)除了禁用,我还将按钮状态设置为“按下”,以直观地指示已达到极限值,并且按钮不再工作。 我的按钮onClickListener的'增加'按钮看起来像这样: ClickListeners上相应的
本文向大家介绍如何禁止浏览器使用后退按钮功能,包括了如何禁止浏览器使用后退按钮功能的使用技巧和注意事项,需要的朋友参考一下 本文介绍可找到的各种禁用浏览器后退按钮方案,分析它们各自的优缺点和适用场合。 一、概述 曾经有许多人问起,“怎样才能‘禁用'浏览器的后退按钮?”,或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?”在ASP论坛上,这个问题也是问得最多的问题之一。遗憾的是,答案非常