2017年,由于工作原因,下载了一个dedecms手机和PC同步更新的插件。
拿到这个插件的时候,出现了手机端和PC,模板混乱生成的问题。
由于,当时仅仅是使用dedecms,对dede内核的一些函数并不了解。
所以,对这个bug的修复,一筹莫展。但并没有放弃,接下来的一两年,我对这个问题,无数次的冲锋都倒了下。
趁着疫情这段时间,加上参加了技术培训,这次又冲锋了一次。成功了。
一:相关技术基础。
1.要有一定的PHP基础。遇到PHP代码不要怕。能读懂每段代码的意思。
2.要对dede的缓存有一些了解。dede的系统配置,都会生成一个配置文件在服务上。这次,每次访问后台的时候,一些系统配置参数,直接通过文件(而非通过数据库)读取到。这样加快了,dede后台的访问速度。
3.缓存文件和数据库里的数据,经常会不一样。但由于,生成PC和手机端的时候,模板都是从缓存里读取。因此,如果不及时更新缓存,那更新手机端的时候,就会读取PC端的模板。这就需要,在生成文档之前,进行同步操作。
二:关于同步操作
dede是使用JS判断,触发提交事件,到达同步。
但由于,那个插件在同步缓存的时候,缺少了toke参数,因此出现了混乱。
只需要,在/dede/m/panduan.php 文件的第112行,增加一个toke输入框就好了。代码如下。
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
-----------------------------------------------------------------------------------------------------------------------------------------------
三:调试的经验
1.使用F12,打开控制台,对前端,后端,都能做调试。
2.要熟悉,控制台network中,post报文的解读,当时也是发现了,post响应失败,才找出这个问题。
记录一下,么么哒。