服务器网页多重定向,此网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决此问题。...

这篇博客探讨了遇到网页重定向过多的问题,特别是在后台登录场景下。作者描述了他们如何将登录信息存储在Cookie中以实现自动登录,并设置了无限期的Cookie过期时间。然而,当后台Session失效后,重新打开浏览器导致了重定向循环。问题可能源于服务器配置。代码示例展示了检测Session和Cookie的逻辑,以及在不同情况下如何处理登录状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网页提示:此网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决此问题。如果不能解决,可能是服务器配置有问题,而不是您的计算机有问题。

一个网站,分为前台和后台,都需要各自的帐号密码登录。

为了保存登录状态,我把登录信息session存在cookie里,设置cookie的过期时间无限长,如果session过期就从cookie中取出登录信息进行验证登录。

前台没有任何问题,可以自动登录,后台在关闭浏览器session失效后再进入,提示:此网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决此问题。如果不能解决,可能是服务器配置有问题,而不是您的计算机有问题。

前后台的代码基本是一样的:

检测session是否存在,session存在直接进入

session不存在,检测cookie,通过cookie获取登录信息登录。信息正确进入,信息错误跳转至登录界面。

session和cookie都不存在,跳转至登录界面。

//验证是否登录

public function _initialize(){

$session=session('uid');

$cookie=cookie('auto');

//session失效 cookie失效

if(!isset($session) AND !isset($cookie)){

$this->redirect('Login/login',array(),1,'请先登录');

exit;

}

//session失效 cookie有效

if(!isset($session) AND isset($cookie)){

//使用cookie登录

$AdminModel=D('Admin/Admin');

$result=$AdminModel->login($cookie);

if($result>0){//登录成功

//判断管理员身份

if($result==1){//超级管理员

$this->redirect("Task/task1");

exit;

}elseif($result>1){//普通管理员

$this->redirect("Eat/displayEat");

exit;

}

} else {//登录失败 cookie中的信息不可用

$this->redirect('Login/login',array(),1,'登录信息已改变,请重新登录');

exit;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值