业务经理

微信扫描以上二维码

028-61286886

技术咨询

PHP程序里面请问钩子中如何判断终端

迅睿框架 更新 2020-07-23 12:19:24 小白一枚
PHP程序里面

请问钩子中如何判断终端?

/config/hooks.php

如下这样在钩子中判断终端都出错呢

\Phpcmf\Hooks::on('cms_index', function() {
   ... 你的程序段
   if (IS_PC) {
    // 调用的pc模板
    
}

if (\Phpcmf\Service::C()->_is_mobile()) {
    // 来之移动端,pc端取反就行
}
   
});


方案

  • 迅睿框架创始人 #1 · 2020-07-19 16:35:24
    没有问题,不会有错
  • 9龙城 #2 · 2020-07-19 16:54:52
    理论上不会有问题
  • 小白一枚 #3 · 2020-07-19 17:17:47
    回复迅睿框架创始人
    问题原因找到了,我是指PC端直接跳转到指定URL,但跳转后这个页面又要跳转,重复重定向导致打不开。可以排除后台,请问怎么排除这个URL页面呢
    //程序运行之后
    \Phpcmf\Hooks::on('cms_init', function() {
    	//判断如果是移动端
    	if (\Phpcmf\Service::C()->_is_mobile()) {
    		//前端所有页面判断如果未登录就跳转到登录页面,除非后台
    		if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
    		   dr_redirect(dr_member_url('login/index'));
    		}
        } else {
    		//如果不是移动端就直接跳转到指定URL
    		dr_redirect('index.php?s=page&id=1');
    		
    	}
    });
  • 靠悬赏赚钱买授权 #4 · 2020-07-19 17:55:55
    //程序运行之后
    \Phpcmf\Hooks::on('cms_init', function() {
    	//判断如果是移动端
    	if (\Phpcmf\Service::C()->_is_mobile()) {
    		//前端所有页面判断如果未登录就跳转到登录页面,除非后台
    		if (APP_DIR != 'page' && !\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
    		   dr_redirect(dr_member_url('login/index'));
    		}
        } else {
    		//如果不是移动端就直接跳转到指定URL
    		dr_redirect('index.php?s=page&id=1');
    		
    	}
    });
    可以悬赏(设置悬赏)几块钱么
  • 小白一枚 #5 · 2020-07-19 18:46:11
    靠悬赏(设置悬赏)赚钱买授权你这是排除所有单页面了吧,如何只排除这一个地址 index.php?s=page&id=1
  • 靠悬赏赚钱买授权 #6 · 2020-07-19 19:22:12
    if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; }
  • 小白一枚 #7 · 2020-07-20 20:33:29
    靠悬赏(设置悬赏)赚钱买授权
    这里增加一个条件,排除后台与 /index.php?s=api&c=run 这种apiURL我如下这样不行呢。
    //如果不是移动端就直接跳转到指定URL
    		if (!IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['api'])) {
    			dr_redirect('/app.html');exit;
    		}
  • 小白一枚 #8 · 2020-07-20 20:33:35
    增加悬赏(设置悬赏)金:2元,希望大家给予帮助!
  • 靠悬赏赚钱买授权 #9 · 2020-07-20 20:56:00
    //程序运行之后
    \Phpcmf\Hooks::on('cms_init', function() {
    	//判断如果是移动端
    	if (\Phpcmf\Service::C()->_is_mobile()) {
    	  if (  (APP_DIR != 'page' && $_GET[id]!=1)    ) {
                 return;
              }
    		//前端所有页面判断如果未登录就跳转到登录页面,除非后台
    		if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
    		   dr_redirect(dr_member_url('login/index'));
    		}
        } else {
    		//如果不是移动端就直接跳转到指定URL
    		dr_redirect('index.php?s=page&id=1');
    		
    	}
    });
  • 小白一枚 #10 · 2020-07-20 22:35:13
    靠悬赏(设置悬赏)赚钱买授权
    不对吧,我是想在移动端跳转到指定URL这,排除后台与/index.php?s=api&c=run 这种api接口的URL
    image
  • 靠悬赏赚钱买授权 #11 · 2020-07-20 22:37:38
    //程序运行之后
    \Phpcmf\Hooks::on('cms_init', function() {
     if (  IS_ADMIN || IS_API   ) {
                 return;
              }
    	//判断如果是移动端
    	if (\Phpcmf\Service::C()->_is_mobile()) {
    	  if (  (APP_DIR != 'page' && $_GET[id]!=1)    ) {
                 return;
              }
    		//前端所有页面判断如果未登录就跳转到登录页面,除非后台
    		if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
    		   dr_redirect(dr_member_url('login/index'));
    		}
        } else {
         if (  (APP_DIR != 'page' && $_GET[id]!=1)    ) {
                 return;
              }
    		//如果不是移动端就直接跳转到指定URL
    		dr_redirect('index.php?s=page&id=1');
    		
    	}
    });
  • 小白一枚 #12 · 2020-07-20 22:57:49
    靠悬赏(设置悬赏)赚钱买授权老铁,你还是搞错了,我现在想在排除的不是 page页面,是要排除非后台与 /index.php?s=api&c=run URL
    image
  • 靠悬赏赚钱买授权 #13 · 2020-07-20 23:09:51
    满意答案

    image
    这句话就是排除后台和api,这两块钱好累啊
  • 小白一枚 #14 · 2020-07-20 23:11:29
    靠悬赏(设置悬赏)赚钱买授权哦,你是针对所有终端来排除的,,我试试看
  • 小白一枚 #15 · 2020-07-23 10:36:08
    靠悬赏(设置悬赏)赚钱买授权

    image
    在排除这2条的基础上,再增加排除 /index.php?s=page&id=1
    你之前的好像不行呢
    image
  • 小白一枚 #16 · 2020-07-23 10:36:19
    增加悬赏(设置悬赏)金:1元,希望大家给予帮助!
  • 疾风 #17 · 2020-07-23 10:38:20
    !=改为==小白一枚
  • 小黄人 18html.com #18 · 2020-07-23 11:28:38
    这2块钱不好赚啊
  • 小白一枚 #19 · 2020-07-23 11:30:33
    小黄人 18html.com哈哈,帮助解答的不都是雷锋同志吗,真是为了赚这几块钱吗,不悬赏(设置悬赏)大家一样愿意帮助,我习惯每个求助悬赏(设置悬赏)一点点算是鼓励与感谢吧。
  • 小黄人 18html.com #20 · 2020-07-23 11:31:19
    小白一枚开个玩笑而已!刷刷发帖量
  • 小黄人 18html.com #21 · 2020-07-23 11:31:51
    小白一枚你看我回复,从来都没要求过悬赏(设置悬赏)不是
  • 小白一枚 #22 · 2020-07-23 11:39:56
    小黄人 18html.com所以大家都是雷锋同志。
  • 琉惗 #23 · 2020-07-23 12:14:14
    啥问题啊,解决没
  • 易学习 #24 · 2020-07-23 12:17:39
    if (  (APP_DIR == 'page' && $_GET[id]==1)    ) {
                 return;
              }
  • 小白一枚 #25 · 2020-07-23 12:19:24
    @靠悬赏(设置悬赏)赚钱买授权:感谢指点分享!但有一个地方写反了,作者指正了。

迅睿系统漏洞

GEO系统
GEO系统(2026-10-05)
增加排名管理,排名总览、明细、趋势 运营客户端升级方法:重新生成客户...
手机微信登录
手机微信登录(2026-10-02)
针对微信小程序官方审核要求,增加移动网站首页、隐私说明入口、服务支持...
图标库管理
图标库管理(2026-10-02)
移除后台管理和会员中心的冗余启用引用开关。 内置图标库增加增量更新...
GeoSeo收录宝
GeoSeo收录宝(2026-09-30)
1 强化 时间因子 2 强化 BreadcrumbList 3...
文件管理器
文件管理器(2026-09-30)
用浏览器就能完成文件的查看、在线编辑、目录管理、批量上传与素材预览,...
广告投放管理
广告投放管理(2026-09-30)
优化广告显示 更新调用代码为模板标签
模板界面管理
模板界面管理(2026-09-30)
增加模板标签代码生成功能
GeoSeo工具箱
GeoSeo工具箱(2026-09-29)
新增AI可见度检测 支持多品牌管理(品牌/别名/竞品,数据隔离,定...
自定义页面
自定义页面(2026-09-29)
自定义布局页面、创建企业宣传页面、创建活动页面等需求,自由添加显示控...
全库搜索
全库搜索(2026-09-28)
去除权限控制,模块搜索改为默认主副表关联搜索