PHP中session过期跳转到登陆页面并跳出iframe框架的两个方法
最近在做lavarel中间件的时候,判断用户登录后操作超时,session过期后要重新登录,但是用的iframe,返回的登陆页总是在子框架中显示,这里提供两种方案去实现这种功能。
方法一:
一般使用中间件过滤用户是否登录,如果用户没有登陆则转向登陆页面,这时候可以使用return redirect(‘/admin/login’);
。
但当在页面上使用了iframe后,发现被重定向的只是父页面中的iframe区域,登陆页面内容显示在该区域中。
并且再次登陆后所有的页面又会全部展示到子页面中,还得重新刷新下页面来正确显示页面。
看看我以前写的代码:
public function handle($request, Closure $next)
{
if(!Session::has('admin')){
return redirect('/admin/login');
}
return $next($request);
}
因为redirect没有target属性,但html页面和js中有,于是,当判断出用户没有访问权限时,我们可以在php中使用js来转向到真正的登录页面。
在中间件使用如下代码:
public function handle($request, Closure $next)
{
if(!Session::has('admin')){
return redirect('/ladmin/login');
echo "";
echo "";
echo "";
exit();
}
return $next($request);
}
方法二:
在你想控制跳转的页面,比如login.php中的
与之间加入以下代码:PHP中输出语句echo(),print(),print_r(),var_dump()之间的区别 php操作数组的方法整理持续更新中
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.