/**判断系统是否启用验证码*/
$captcha = intval($_CFG['captcha']);
if
(($captcha & CAPTCHA_LOGIN) && (!($captcha &
CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) &&
$_SESSION['login_fail'] > 2)) && gd_version() > 0)
{//如果系统启用了登录验证码,则给模板传一个已启用变量$enabled_captcha=1
$GLOBALS['smarty']->assign('enabled_captcha', 1);
$GLOBALS['smarty']->assign('rand', mt_rand());
}
/**验证码验证*/
$captcha = intval($_CFG['captcha']);
if
(($captcha & CAPTCHA_LOGIN) && (!($captcha &
CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) &&
$_SESSION['login_fail'] > 2)) && gd_version() > 0)
{
if (empty($_POST['captcha']))
{
show_message($_LANG['invalid_captcha'], $_LANG['relogin_lnk'], 'user.php', 'error');
}
/* 开始检查验证码 */
include_once('includes/cls_captcha.php');
$validator = new captcha();
$validator->session_word = 'captcha_login';
if (!$validator->check_word($_POST['captcha']))
{
show_message($_LANG['invalid_captcha'], $_LANG['relogin_lnk'], 'user.php', 'error');
}
}
本文介绍了一个基于PHP的系统登录验证码功能实现方法。包括了如何判断系统是否启用验证码、验证码的生成与验证流程,并通过实例代码详细展示了整个过程。
163

被折叠的 条评论
为什么被折叠?



