相关文章
typecho代码高亮 typecho控制台怎么进入
2024-12-18 21:48

typecho重新升级至1.2.0(实际上是重新删除后安装)后,typecho始终无法登录后台。

PHP这种Web编程语言实在没接触过,花了两天来玩一下。

博客网站使用的技术:nginx+php-fpm+typecho(sqlite),nginx与php实际运行一个ARM电视盒子上。

正常运行的网站,各种调试、日志都是关闭的,因此,首先打开php-fpm的日志捕获开关:

;catch_workers_output=no

修改为yes,并将首字符;去掉。

此开关打开后,php的error_log就可以输出信息了。

同时将php.ini的显示错误开关打开:

;display_errors=off

修改为display_errors=on。

修改好这些开关后,重启php-fpm的服务。

之后就可以在typecho的php代码中增加error_log以观察代码的运行轨迹。

登录链接代码在typecho的admin目录login.php,但实际提交的代码为:

https://XXX.XXX.net/blog/index.php/action/login?_=7cf73d0584c577c96833bd2e3a58e0f0

_=后面的字符为一串md5字符,可以不管。

而这个链接首先会被nginx的fastcgi_split_path_info功能拆分,对于blog的fastcgi_split_path_info代码如下:

fastcgi_split_path_info后面的正则表达式,将/blog/index.php/action/login?_=7cf73d0584c577c96833bd2e3a58e0f0链接拆分成两个group

分别是:

/blog/index.php

/action/login?_=7cf73d0584c577c96833bd2e3a58e0f0

然后用$fastcgi_script_name与$fastcgi_path_info存放。

在其后的

将后部内容传递至PATH_INFO(这个变量在typecho中,即可通过从request头部中获取PATH_INFO变量来取得)

实际执行脚本的是/blog/index.php

但从index.php来看,代码很简单:

从网络中,搜索一堆资料,了解到,关键代码在TypechoRouter::dispatch()

主要内容即根据数据库中的路由表,分别调用创建对应的Widget,然后调用相应Widget的action函数。

在Router.php的dispatch函数中加上相应的日志输出对应的widget。

从日志看出/action/login?_=7cf73d0584c577c96833bd2e3a58e0f0对应的widget为WidgetAction

对于varWidgetAction.php的代码见内:

基本思想来看,查map表,然后转到对应的类。对于当前动作,login显然对应到WidgetLogin.php。

WidgetLogin.php的代码如下:

在此action函数中,加上相应日志,问题定位到此处代码:

代码在执行到此行,即已经返回,也就根本没有再执行后面的校验用户名、密码等动作。

protect函数的代码如下,相当简单

在此函数中加上日志定位到,此处的request->get('_')获取即为请求中的7cf73d0584c577c96833bd2e3a58e0f0,

而getToken函数如下:

根据token与request的getReferer计算的一个md5内容。

token及相应计算规则应该是没有问题的,因此怀疑点定位到getReferer函数的返回内容。

在网上搜索一番后,发现已经有人记录了此种问题及相应解决办法,链接:https://blog.warhut.cn/dmbj/423.html

引用如下:

------------------------------------------------------------------------------------------------------------------

如果加入了,将会导致无法登录后台,原因如下:

由于是通过登录的后台地址,传输参数,所以当加入之后相当于删除了提交的地址。

通过下面即可解决,加在中。

------------------------------------------------------------------------------------------------------------------

解决办法,先在adminHeader.php中加入上面的referer行,如下:

加入后,登录功能即正常,但blog首页中的退出登录还有问题,点击退出类似于登录异常的情形,直接返回。

采取在首页相应的header处,添加相应代码。

themes中的header.php中代码如下(默认theme):

这儿首页的header()函数,实际对应到var/Widget/Archive.php中的header函数,

即可解决首页退出登录情况。

 


    以上就是本篇文章【typecho代码高亮 typecho控制台怎么进入】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/news/11750.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://sjzytwl.xhstdz.com/mobile/ , 查看更多   
最新文章
内江资中:喜迎新春 情暖老兵
  年关将至,温暖先达。新春佳节来临之际,资中县精心组织“喜迎新春 情暖老兵”走访慰问活动,资中县双龙镇退役军人服务站率
不花钱享受高音质 千万人都会选择的播放器手机音乐播放器「不花钱享受高音质 千万人都会选择的播放器」
前言:音乐,是一项不分国界的爱好、事情、物质甚至叫情感。而媒介,我想对于现在大多数的人来说,听音乐的方式太多了,要是自己
UC手机浏览器uc手机浏览器「UC手机浏览器」
是UC 优视科技开发的一款手机,支持WEB、WAP页面浏览,速度快而稳定,页面排版美观;具有网站导航、搜索、下载、个人数据管理等
如何在手机挣钱正规渠道 2022五大利用手机赚钱的渠道手机赚钱「如何在手机挣钱正规渠道 2022五大利用手机赚钱的渠道」
如何在手机挣钱正规渠道?很多人都通过做手机游戏任务和试玩游戏赚钱,单干的话一天也可以挣一两百块,如果掌握了某种推广渠道做
著名画家---辛守庆作品赏析手机网易网「著名画家---辛守庆作品赏析」
辛守庆,男,汉族,1945年出生于山东省高唐县姜店镇辛庄村,现居北京。国家一级美术师、中国美术家协会员、中国花鸟画研究会研究
传音与阿里云合作推出TECNO AI手机,开启新体验tecno手机「传音与阿里云合作推出TECNO AI手机,开启新体验」
智能化助手:一键激活AI按键,你可以随时进行AI对话与任务处理,而不必担心网络问题。文生文功能:可以在接到电话后自动生成通话
AI办公助手:提升工作效率的秘密武器你还在犹豫吗?
引言:新时代的办公助理 随着人工智能技术的不断发展,越来越多的企业开始引入AI办公助手,提升整体工作效率。这种基于AI技术的办公助手,犹如一位高效的秘书,能够帮助员工减少繁杂的日常事务,提高专注度,从而实现更高的工作产出。但面
10款必试AI视频带货软件让你轻松开启销售新纪元!
引言:AI视频带货的崛起 随着科技的飞速发展,人工智能正在全面渗透到各个产业,而视频带货作为一种新兴的营销手段,正在受到越来越多商家的青睐。借助AI视频带货软件,企业和个人可以更高效地展示产品,吸引目标客户,提升销售业绩。本文
探寻中国:不可错过的十大必游旅游景点推荐
探寻中国:不可错过的十大必游旅游景点推荐 中国,这片广袤的土地,自古以来便是文明的摇篮,历史的长河中孕育了丰富的文化与壮丽的自然景观。从古老的长城到秀美的江南水乡,从神秘的西藏到繁华的都市,每一个角落都散发着独特的魅力。在
【独家教程】学会使用Nginx配置前端路由!
前言 对于前端开发者来说,掌握 Nginx 配置前端路由是非常关键的技能。在 Web 开发中,合理使用 Nginx 不仅能提高网站性能,还能优化用户体验。本篇文章将为大家提供详细的独家教程,帮助您学会使用 Nginx 配置前端路由。 为什么选择Nginx
相关文章