起因:昨天晚上辛辛苦苦写了一大篇关于Pagerank的东东,结果电脑突然蓝屏(6年前的本本,想下课了,NND),重启电脑后发面我的文章已经消失,只剩下短短的一句标题“成功将Pagerank查询程序迁移到linux下”,郁闷,相当地郁闷啊。
昨天在SA论坛上看到有位兄弟也是一个捣鼓能手,把Sa2.0装上后,还做了很漂亮的风格,修改了好几处BUG,于是在他博客上留言,希望能解决这个问题。与此同时,我这边也在开工了,经过我详细的分析,文章自动保存调用了include\jscript\autosave.js 这个文件,不要小瞧这几段JS,他可以自动缓存文章内容功臣,该JS获取FCK里的内容,并把文章标题,文章内容以及文章描述通过ajax提交到cp.php,接着当cp.php收到POST后,调用include\func\cache.func.php的autosave_recache函数将内容存到cache/cache_autosave.php文件里,下次进入添加文章页时,自动从cache/cache_autosave.php页获取缓存内容,从而实现发表文章时,文章内容自动保存起来了,免的因为各种原因把文章弄丢了。
经过我分析后,发现标题内容可以保存起来,文章内容和描述始终不能保存,但是我手动保存内容后,检查cache/cache_autosave.php这个文件,标题、内容和描述都保存起来了的,但是为何不能正常显示呢,难道是fck的问题,仔细对SA1.6的fck调用文件后发现一切正常,这时就出现了一个问题,同样地调用fck内容,如果是调用代码的问题,那么修改文章时就不会显示内容的,这时问题就豁然开朗了,肯定出在进入添加文章页的代码上,仔细检查发现admin\article.php有一个Sa2.0致命错误(红色部分),代码如下:
$act = 'addarticle';
$tdtitle = '添加日志';
$article['description'] = $article['content'] = '';
$article['closecomment'] = isset($_COOKIE['closecomment']) ? intval($_COOKIE['closecomment']) : '0';
为何每次添加日志的时候都要把描述和内容清空呢? 清空了那自动保存还有什么用,哈哈哈,把这行(红色部分)删除或注释掉,搞定。
最后总结一下:如何解决Sa2.0后台文章不能自动保存的BUG?
打开admin\article.php 这个文件,找到$article['description'] = $article['content'] = '';
删除该代码,或者将代码替换为 //$article['description'] = $article['content'] = '';
这样修改一下就可以实现文章自动保存了,罗嗦了这么多,我只想说明一点,出现问题时,顺藤摸瓜,多思考,不管什么问题,我们都有能力解决的,谢谢大家!!
9 comments
高手啊,太佩服了~~
高手啊~~~
我现在最想说的一个字:猫猫,我太爱你了
[quote=HJin]还有,这篇文章我转载走了哦!作为技术文章,自己记住。[/quote]哈哈哈,我也检查了好久啊,晕的很啊,本以为是代码的问题,结果是这个低级错误,呵呵..
还有,这篇文章我转载走了哦!作为技术文章,自己记住。
测试成功!你好棒啊!居然没有想到是PHP的错误!……
被你抢先了!我哭啊!
昨天我也研究了好久的代码,所有过程都和你一样,也对比了1.6的程序。整个过程都弄懂了,可是……
最后思路僵化了,就一直停留在检查js脚本上面,所以没有想到去看article.php
我喜欢席地而坐!坐地板咯!
2.0还是等你们先用的人修正Bug后,我在升级,哈哈!到时候打算从零开始!
沙发自己坐到起....下面的同学排好队...