在其它程序中调用Discuz!的搜索功能

最近,有个项目需要整合Discuz!论坛,有一个主搜索导航,可以直接搜索论坛相关内容。但经过分析源代码后,Discuz!的搜索不是简单的提问查询词,Discuz!中会自己生成一个查询索引,通过那个索引id来做定位查询词。

整体思路是模拟搜索表单的提交,但在模拟时发现一个问题,Discuz!会根据用户生产hash值,当提交后,当然会判断这个hash值,这会非常麻烦,因为这个hash值需要一些Discuz!初始化的变量才能产生。所以先在程序去掉这个验证。程序在:

include/global.func.php文件中的submitcheck函数,在889行开始,有一个条件判断:$GLOBALS[‘formhash’] == formhash(),只要把这个去就可以,但这样会对论坛的安全性造成一些问题。

注意:Discuz!和整合的程序必须是在一个域内才行。

分享到: 更多