迅睿開源框架是一款PHP8高性能·簡單易用的PHP開源開發(fā)框架, 基于MIT開源許可協(xié)議發(fā)布,不限制商業(yè)使用,以多端互聯(lián)為設(shè)計理念, 支持的微信公眾號、小程序、APP客戶端、移動端網(wǎng)站、PC網(wǎng)站等多終端式管理系統(tǒng)。
業(yè)務(wù)經(jīng)理
微信掃描以上二維碼
028-61286886
在線咨詢
請問鉤子中如何判斷終端?
/config/hooks.php
如下這樣在鉤子中判斷終端都出錯呢
\Phpcmf\Hooks::on('cms_index', function() { ... 你的程序段 if (IS_PC) { // 調(diào)用的pc模板 } if (\Phpcmf\Service::C()->_is_mobile()) { // 來之移動端,pc端取反就行 } });
沒有問題,不會有錯
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)迅睿框架創(chuàng)始人
問題原因找到了,我是指PC端直接跳轉(zhuǎn)到指定URL,但跳轉(zhuǎn)后這個頁面又要跳轉(zhuǎn),重復(fù)重定向?qū)е麓虿婚_。
可以排除后臺,請問怎么排除這個URL頁面呢
//程序運行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });
理論上不會有問題
//程序運行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 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 { //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });
可以懸賞(設(shè)置懸賞)幾塊錢么
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
你這是排除所有單頁面了吧,如何只排除這一個地址 index.php?s=page&id=1
if ( (APP_DIR != 'page' && $_GET[id]!=1) ) {
return;
}
這里增加一個條件,排除后臺與 /index.php?s=api&c=run 這種apiURL
我如下這樣不行呢。
//如果不是移動端就直接跳轉(zhuǎn)到指定URL if (!IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['api'])) { dr_redirect('/app.html');exit; }
//程序運行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動端 if (\Phpcmf\Service::C()->_is_mobile()) { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });
不對吧,我是想在移動端跳轉(zhuǎn)到指定URL這,排除后臺與/index.php?s=api&c=run 這種api接口的URL
//程序運行之后 \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; } //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 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; } //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });
老鐵,你還是搞錯了,我現(xiàn)在想在排除的不是 page頁面,
是要排除非后臺與 /index.php?s=api&c=run URL
這句話就是排除后臺和api,這兩塊錢好累啊
哦,你是針對所有終端來排除的,,我試試看
在排除這2條的基礎(chǔ)上,再增加排除 /index.php?s=page&id=1
你之前的好像不行呢
!=改為==
回復(fù)@小白一枚
這2塊錢不好賺啊
回復(fù)@小黃人 18html.com
哈哈,幫助解答的不都是雷鋒同志嗎,真是為了賺這幾塊錢嗎,不懸賞(設(shè)置懸賞)大家一樣愿意幫助,我習(xí)慣每個求助懸賞(設(shè)置懸賞)一點點算是鼓勵與感謝吧。
開個玩笑而已!刷刷發(fā)帖量
你看我回復(fù),從來都沒要求過懸賞(設(shè)置懸賞)不是
所以大家都是雷鋒同志。
啥問題啊,解決沒
if ( (APP_DIR == 'page' && $_GET[id]==1) ) { return; }
沒有問題,不會有錯
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)迅睿框架創(chuàng)始人
問題原因找到了,我是指PC端直接跳轉(zhuǎn)到指定URL,但跳轉(zhuǎn)后這個頁面又要跳轉(zhuǎn),重復(fù)重定向?qū)е麓虿婚_。
可以排除后臺,請問怎么排除這個URL頁面呢
//程序運行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });理論上不會有問題
//程序運行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動端 if (\Phpcmf\Service::C()->_is_mobile()) { //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 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 { //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });可以懸賞(設(shè)置懸賞)幾塊錢么
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
你這是排除所有單頁面了吧,如何只排除這一個地址 index.php?s=page&id=1
if ( (APP_DIR != 'page' && $_GET[id]!=1) ) {
return;
}
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
這里增加一個條件,排除后臺與 /index.php?s=api&c=run 這種apiURL
我如下這樣不行呢。
//如果不是移動端就直接跳轉(zhuǎn)到指定URL if (!IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['api'])) { dr_redirect('/app.html');exit; }//程序運行之后 \Phpcmf\Hooks::on('cms_init', function() { //判斷如果是移動端 if (\Phpcmf\Service::C()->_is_mobile()) { if ( (APP_DIR != 'page' && $_GET[id]!=1) ) { return; } //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) { dr_redirect(dr_member_url('login/index')); } } else { //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
不對吧,我是想在移動端跳轉(zhuǎn)到指定URL這,排除后臺與/index.php?s=api&c=run 這種api接口的URL
//程序運行之后 \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; } //前端所有頁面判斷如果未登錄就跳轉(zhuǎn)到登錄頁面,除非后臺 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; } //如果不是移動端就直接跳轉(zhuǎn)到指定URL dr_redirect('index.php?s=page&id=1'); } });回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
老鐵,你還是搞錯了,我現(xiàn)在想在排除的不是 page頁面,
是要排除非后臺與 /index.php?s=api&c=run URL
這句話就是排除后臺和api,這兩塊錢好累啊
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
哦,你是針對所有終端來排除的,,我試試看
回復(fù)@靠懸賞(設(shè)置懸賞)賺錢買授權(quán)
在排除這2條的基礎(chǔ)上,再增加排除 /index.php?s=page&id=1
你之前的好像不行呢
!=改為==
回復(fù)@小白一枚
這2塊錢不好賺啊
回復(fù)@小黃人 18html.com
哈哈,幫助解答的不都是雷鋒同志嗎,真是為了賺這幾塊錢嗎,不懸賞(設(shè)置懸賞)大家一樣愿意幫助,我習(xí)慣每個求助懸賞(設(shè)置懸賞)一點點算是鼓勵與感謝吧。
回復(fù)@小白一枚
開個玩笑而已!刷刷發(fā)帖量
回復(fù)@小白一枚
你看我回復(fù),從來都沒要求過懸賞(設(shè)置懸賞)不是
回復(fù)@小黃人 18html.com
所以大家都是雷鋒同志。
啥問題啊,解決沒
if ( (APP_DIR == 'page' && $_GET[id]==1) ) { return; }