相关文章
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://dh99988.xhstdz.com/news/11750.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://dh99988.xhstdz.com/mobile/ , 查看更多   
最新文章
如何轻松应对Nginx配置文件大小限制提高网站性能与稳定性
为什么需要关注Nginx配置文件大小限制 在使用Nginx作为网站服务器的过程中,配置文件的大小限制是一个常见的问题。当配置文件过大时,会导致服务器性能下降,影响网站的稳定性和访问速度。因此,及时优化和调整配置文件大小非常重要。 如何
打造健康生活新选择:养生馆推广文案写作技巧揭秘
引言:健康生活的追求 在现代社会中,健康已经成为人们最看重的财富之一。快节奏的生活和不断加重的工作压力,使得越来越多的人开始关注自己的身心健康。养生馆作为一种创新的健康生活方式应运而生,它不仅为人们提供了放松身心的场所,还
探索兰州魅力:一份全面的兰州旅游攻略揭开牛肉面与黄河的秘密
探索兰州:邂逅西北的魅力之城 兰州,作为甘肃省的省会,坐落于黄河上游,是一座历史悠久而又充满活力的城市。这里不仅拥有丰富的文化遗产,还有壮观的自然景观。兰州以其独特的地理位置、深厚的文化底蕴和美味的地方美食吸引着越来越多的
如何设置服务器配置提高系统性能?
提高系统性能的重要性 在当今数字化时代,服务器的性能直接影响到企业的竞争力和运营效率。一个高效的服务器配置不仅可以提升系统的稳定性和响应速度,还能提高员工的工作效率和客户体验。 选择适合的硬件和软件配置 首先,要根据企业的实
如何成功启动社区团购:从运营模式到实战技巧的全方位解析
引言:社区团购的崛起 在当今的互联网时代,社区团购以其高效、便捷的特点迅速崛起,成为许多消费者购物的新选择。社区团购不仅能满足居民对日常生活用品的需求,还能通过规模化采购为消费者带来实惠。如何成功启动社区团购,成为了许多创
海底捞学生证折扣使用时间详解:让你的就餐更划算
海底捞学生证折扣使用时间详解 海底捞作为国内知名的火锅连锁品牌,一直以高质量的服务和美味的火锅享誉全国。而对于学生党来说,海底捞更是一个不可多得的福利之地。学生持有效学生证可以享受折扣优惠,让你的就餐更划算。 折扣使用时间
企业网站优化的方法详解
企业网站优化的方法详解 在当今数字化时代,企业网站是企业展示形象、吸引客户、提升品牌的重要窗口。但是,如何使企业网站在竞争激烈的网络世界中脱颖而出,吸引更多潜在客户,成为每家企业都需要思考和解决的问题。 网站内容优化 网站内
探索旅游景区的多样性:常见景观设施类型与特色分析
引言 随着人们生活水平的不断提高,旅游已成为现代生活中不可或缺的一部分。在这个充满活力的行业中,旅游景区以其多样化的景观设施和独特的文化特色,吸引了越来越多的游客。本文将深入探讨旅游景区的多样性,分析常见的景观设施类型以及
企业网站建设优化设计:提升品牌形象与用户体验的必经之路
企业网站建设优化设计的重要性 随着互联网的迅猛发展,企业网站已经成为企业展示自身形象、吸引客户、促进销售的重要工具。而一个优秀的企业网站不仅仅是在页面上简单地展示产品和服务,更需要具备优化设计,提升品牌形象和用户体验,从而
社区团购平台运营模式探析:提升效率与用户体验的双重战略
社区团购的兴起 随着互联网的快速发展,社区团购平台逐渐走进人们的生活,为消费者带来了更加便捷和实惠的购物体验。社区团购是指通过线上平台,将消费者团结在一起,集中采购商品,从而获得更低的价格优惠。这种模式不仅可以提升效率,还
相关文章