Fireboard是Joomla!下不错的论坛,但是发展有点慢,更新的速度不够,最新的版本好像是1.0.4吧,错误还比较多。因为各种原因,我还没升级。但是因为被卖伟哥的给骚扰,没办法打开了验证码功能,在朋友的提醒下,发现运行不正常。看了一下源代码,发现其中验证码部分代码如下:
session_start();
$number = $_POST['txtNumber'];
也难怪不能正常运行了,还在直接操作session,坛子中有关于Joomla! 1.5 session的讨论。最后修改了一下fireboard,将验证码改掉了。验证采用了验证码插件,具体使用请参考:
如何在Joomla!组件扩展中添加验证码captcha,服务器配置篇
如何在Joomla!组件扩展中添加验证码captcha,程序修改篇
我的fireboard修改如下:
components/com_fireboard/template/default/fb_write.html.php文件,将原262,263行验证码显示和输入的改为:
<td align="left" valign="middle" height="35px"> <input name="word" type="text" id="word" value="" style="vertical-align:top" size="15">
<img src="/index.php?option=com_fbcomments&task=displaycaptcha" style="vertical-align:middle;heiht:60px"/>
然后修改components/com_fireboard/template/default/post.php文件:
将原60行之后的验证部分改为:
function displaycaptcha() {
global $mainframe;
$Ok = null;
$mainframe->triggerEvent('onCaptcha_Display', array($Ok));
if (!$Ok) {
echo "<br/>Error displaying Captcha<br/>";
}
} function _checkCaptcha() {
global $mainframe;$return = false;
$word = JRequest::getVar('word', false, '', 'CMD');
$mainframe->triggerEvent('onCaptcha_confirm', array($word, &$return));
if ($return) {
return true;
} else return false;
}
if (!_checkCaptcha()) {
JError::raiseError("403","You have entered the wrong CAPTCHA sequence. Please try again.");
return false;
} 这样就可以了。
注意:要按照文章中说的安装服务器和验证码插件啊。
我没有验证最新版本的fireboard是否可以支持验证码。过两天有时间了升级一下试试。