Serendipity博客系统1.3版发布

最好的Php博客系统Serendipity发布最新的1.3版本并提供下载. 这一版本的Serendipity强化了不少新功能,并修正了XSS跨站脚本攻击安全漏洞:

由于Serendipity 1.3包含了安全更新,所以推荐所有Serendipity blog系统用户升级,本次升级不涉及数据库文件。(Php博客主机用户,我们已代为进行了升级)。

另外,Serendipity官方开始带有简体中文语言包,所以无需额外寻找Serendipity 博客中文版了,其中文搜索问题,可通过Google定制搜索替代。

Serendipity中文搜索问题

04年的时候曾经提供了个Serendipity搜索的修正方法,并发布在s9y官方论坛的,即简单的使用like方法,替换match方法。s9y默认的搜索是使用MySQL的全文检索,并不支持中文的搜索。这里提供个针对新版的修改;在/include/functions_entries.inc.php加上了几句,验证一下,是否是中文,是的话就使用LIKE,不是中文就使用强大的全文检索。 if(preg_match("/^[\x80-\xff]+$/", $term)) { $cond['find_part'] = "((e.title LIKE ('%" . addslashes($term) . "%')) or (e.body LIKE ('%" . addslashes($term) . "%')) or (e.extended LIKE ('%" . addslashes($term) . "%')))"; } else { if (preg_match('@["\+\-*~<>\(\)]+@', $term)) { $cond['find_part'] = "MATCH(title,body,extended) AGAINST('$term' IN BOOLEAN MODE)"; } else { $cond['find_part'] = "MATCH(title,body,extended) AGAINST('$term')"; } } 而替代以前的 if (preg_match('@["\+\-*~<>\(\)]+@', $term)) { $cond['find_part'] = "MATCH(title,body,extended) AGAINST('$term' IN BOOLEAN MODE)"; } else { $cond['find_part'] = "MATCH(title,body,extended) AGAINST('$term')"; }搞定,不过中文搜索功能较弱就是了。 注:s9y版本Serendipity 1.1,其它版本中也有是找到相应文件的MATCH (...) AGAINST 语句改掉就是了。
标签: