业务经理

微信扫描以上二维码

028-61286886

技术咨询

如何实现访问所有前端页面未登录就跳转到登录界面使用首页钩子能

迅睿框架 更新 2020-07-19 16:08:13 小白一枚
PHP程序里面

如何实现访问所有前端页面未登录就跳转到登录界面?

使用首页钩子cms_index能成功实现访问首页是判断是否登录跳转,,但其它页面就不行了,比如栏目页,信息内容页等等页面。


于是想用 主程序运行之后钩子 cms_init

结果页面都打不开了,重定向次数过多,

\Phpcmf\Hooks::on('cms_init', function() {
   if (!\Phpcmf\Service::C()->uid) {
       dr_redirect(dr_member_url('login/index'));
   }
   
});


如果想要所有前端页面都判断是否登录,该怎么办呢


方案

  • 迅睿框架创始人 #1 · 2020-07-19 15:56:11
    \Phpcmf\Hooks::on('cms_init', function() {
       if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
           dr_redirect(dr_member_url('login/index'));
       }
       
    });
    加一个判断试试
  • 迅睿框架创始人 #2 · 2020-07-19 15:58:04
    if (!\Phpcmf\Service::C()->uid && !IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
           dr_redirect(dr_member_url('login/index'));
       }
    排除后台
  • 小白一枚 #3 · 2020-07-19 15:58:28
    回复迅睿框架创始人这个可以,能麻烦讲解下这个判断与之前那个有啥不同呢,
    ['register', 'login', 'api', 'pay']
    这里面几个代表啥意思
  • 左手 #4 · 2020-07-19 16:06:37
    if (!\Phpcmf\Service::C()->uid && !IS_ADMIN) {
           dr_redirect(dr_member_url('login/index'));
       }
    试试这个
  • 小白一枚 #5 · 2020-07-19 16:08:13
    左手
    你这个也不行,,重定向次数过多。#2楼的可以

迅睿系统漏洞

AI文章生成器
AI文章生成器(2026-09-20)
任务拆分独立配置 新增AI生成关键词 新增指令模板 新增品牌信...
GEO系统
GEO系统(2026-09-20)
后台 AEO 与运营端对齐:区域、跑批、CSV、补强、剧本均可在迅睿...
多语言翻译Seolang
多语言翻译Seolang(2026-09-18)
1. HTML lang 无需修改模板,自动适配当前语种页面 lan...
GeoSeo工具箱
GeoSeo工具箱(2026-09-18)
修正菜单规范
后台二次登陆验证
后台二次登陆验证(2026-09-18)
新增邮箱验证 新增短信验证
京东云短信
京东云短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
创蓝短信
创蓝短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
火山引擎短信
火山引擎短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
外贸多语言建站
外贸多语言建站(2026-09-17)
优化独立内容过滤机制