discuz 关于分类信息 模板diy 调用image的bug 图片丢失

分类信息 image调用的丢失问题

首先是页面中对于分类信息的调用方式。如此如此这般,网上多如牛毛,本人用得尚浅,不做过多说明,今天的主角是分类信息diy image的调用问题。

如果在最新版(2013-2-28:以当前时间为准),的discuz中

新的image的获取方式里。因为漏洞问题,修改了生成key的方式 function_core.php:getforumimg

生成key的函数由md5 改成dsign

(因为这个是md5这个是漏洞问题导致容易被别人爆菊花,就是改参数,让服务器生成,这样对服务器来说有危险,看哪个站不爽,可以用此招爆他。。)

后来改了。生成的加密串里,用到的key有两个新的,一个是系统的密钥,一个是uid.

问题来了。在我生成时没有问题。

详见:

/source/module/forum/forum_image.php

但是,如是是系统自己生成的,即更新时,使用的是别人的uid,这样,我下次访问时,因为检查用的是我的uid.导致了不通过。造成图片无法读取的小bug了。

 

 

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

 

 

异页面调用hooks方法

discuz中的hook是一个很有意思的创新,俗称钩子。

hook,实际上是对应的hook 点是在入口文件加载数据,在对应的hook点以字符串的形式输出。在模板中的使用的方式为:

<!–{hook/index_top}–>

处理相关脚本的核心函数为:

function_core.php

function hookscript($script, $hscript, $type = ‘funcs’, $param = array(), $func = ”, $scriptextra = ”);

系统原调用的操作方式为:

runhooks();

每个入口文件里几乎都有,为当前入口和动作,调用对应的相关的hook。

也就是通过hookscript这个函数处理。

所以如果我想在portal的首页调用forum的index的钩子,那就会有问题,没有执行。导致在protal模板中输出的<!–{hook/index_top}–> 为空。

知道来由就好说了。

现在再再运行的过程中的,我自己手动调用相关的函数,自己伪造下页面和入口。

即:

runhooks();//我不去除的主要原因是每个页面都有自己的默认钩子,如全局的头和脚.
hookscript(“index”,”forum”);//这个就是咱们要的部分了。

这就是异页面调用钩子的方式了。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827