相关文章
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/ , 查看更多   
最新文章
为大家推荐30部穿越类动漫,哪一部是您的最爱?智慧型手机「为大家推荐30部穿越类动漫,哪一部是您的最爱?」
“穿越”是现在非常流行的题材,在网络文学中“穿越类”作品比比皆是,什么穿越去古代或未来、穿越去异世界……而在二次元动漫里
移动云考勤喔趣手机考勤「移动云考勤喔趣」
移动云考勤喔趣,一般又称喔趣app。
捕鱼大咖官捕鱼手机版「捕鱼大咖官」
【免费礼包】兑换码:DK666,DK888【兑换方式】打开游戏-右上角精彩活动-兑换码-每个玩家限2次不同号码的兑换机会!专业团队,史
瓜子二手车二手手机直卖网「瓜子二手车」
瓜子二手车是非常热门的二手车交易软件,二手车辆线上直卖,更有三天试驾驶的模式提供,平台上新车辆均是经过车辆严选,保证车辆
权限列表【录屏录制大师-录屏】小米手机录屏功能在哪「权限列表【录屏录制大师-录屏】」
● 访问大概位置允许应用访问大概位置● 查看网络状态允许应用程序查看所有网络的状态。● 开关WLAN允许应用开启或关闭WLAN● 开
爱思助手 For Mac版爱思助手怎么下载到苹果手机「爱思助手 For Mac版」
爱思助手Mac版是一款至力于为iOS设备用户提供百万正版苹果软件、热门游戏、苹果铃声、高清壁纸,免 AppIe ID 高速一键下载,支持
【品牌人物】OPPO与vivo幕后老板段永平vivo手机创始人「【品牌人物】OPPO与vivo幕后老板段永平」
五洲天宇认证中心是国家认监委唯一批准的品牌星级评价机构,为中华人民共和国境内企业提供品牌星级认证。该认证是对企业及其产品
三防壳 戒不了毒 再入Griffin Survivor Summit 手机壳三防手机壳「三防壳 戒不了毒 再入Griffin Survivor Summit 手机壳」
之前已经隶属过这么多年用过的三防手机壳了,果然被绝大部分人看做了神经病 。但这种偏执的嗜好确实难以改变,这不上一个Lifepro
如何检测空调氟利昂泄露?空调氟利昂怎么加? 发布时间:2025-01-13手机怎么测室内温度「如何检测空调氟利昂泄露?空调氟利昂怎么加? 发布时间:2025
空调是我们生活中常用到的电器,我们都知道,它在制冷的过程中是需要氟利昂的。那么氟利昂是什么呢?它其实就是空调当中的制冷剂
正在阅读:最强骁龙800芯亮相 十一月新发布手机荐最强骁龙800芯亮相 十一月新发布手机荐新手机上市「正在阅读:最强骁龙800芯亮相 十一月新发布手机荐最强骁龙800芯亮相 十一月新发布手机荐」
  【PConline 海选导购】2013年很快就要和我们挥手说再见了,而2013年的元旦仿佛还在昨天,不免让人感叹时光荏苒。对于即将到