新增分站登陆时的验证码功能。
This commit is contained in:
parent
9779a0bebe
commit
5529995c9c
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
use Helpers\View;
|
||||
use Helpers\Curl;
|
||||
use Helpers\Captcha;
|
||||
use Users\Member;
|
||||
use Users\Account;
|
||||
use Users\Users;
|
||||
|
@ -291,7 +292,6 @@ class AccountController extends Zend_Controller_Action
|
|||
|
||||
function loginAction()
|
||||
{
|
||||
|
||||
$success=false;
|
||||
|
||||
$options = array(
|
||||
|
@ -323,11 +323,13 @@ class AccountController extends Zend_Controller_Action
|
|||
{
|
||||
$this->view->href = $tohref;
|
||||
}
|
||||
$captcha = new Captcha();
|
||||
|
||||
//登录表单提交
|
||||
|
||||
if(!$this->_getParam('submit'))
|
||||
{
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -335,13 +337,17 @@ class AccountController extends Zend_Controller_Action
|
|||
|
||||
$param = array(
|
||||
'username' => $this->_getParam('username'),
|
||||
'password' => $this->_getParam('password')
|
||||
'password' => $this->_getParam('password'),
|
||||
'captchaword' => trim($this->_request->getParam('captcha'))
|
||||
);
|
||||
|
||||
$captchaword = $param['captchaword'];
|
||||
|
||||
#用户名校验
|
||||
if(strlen($param['username'])<6)
|
||||
{
|
||||
$this->view->error = '用户名不能少于6个字符';
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -349,12 +355,14 @@ class AccountController extends Zend_Controller_Action
|
|||
{
|
||||
|
||||
$this->view->error = '用户名不能超过20个字符';
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!preg_match("/^[a-zA-Z][a-zA-Z0-9_]{4,19}$/",$param['username']))
|
||||
{
|
||||
$this->view->error = '用户名只能包含英文字母及数字';
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -365,27 +373,51 @@ class AccountController extends Zend_Controller_Action
|
|||
if(preg_match($match,$param['password']) )
|
||||
{
|
||||
$this->view->error = '密码中包含非法字符,请重新输入';
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
if(empty($param['password']))
|
||||
{
|
||||
$this->view->error = '请输入密码';
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
if(strlen($param['password'])<6)
|
||||
{
|
||||
$this->view->error ='密码太短';
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
if(strlen($param['password'])>20)
|
||||
{
|
||||
$this->view->error ="密码长度不能超过20个字符";
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
#验证码校验
|
||||
|
||||
if(empty($captchaword))
|
||||
{
|
||||
$this->view->error = "请输入验证码";
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!isset($_SESSION['captcha']))
|
||||
{
|
||||
$_SESSION['captcha'] = md5(time());
|
||||
}
|
||||
|
||||
if ($captchaword != $_SESSION['captcha']) {
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
$this->view->error = "验证码错误";
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$encoded_param = json_encode($param,JSON_NUMERIC_CHECK);
|
||||
$encoded_param = \Helpers\MCrypt::encrypt($encoded_param,"DY7567");
|
||||
|
@ -414,41 +446,10 @@ class AccountController extends Zend_Controller_Action
|
|||
|
||||
view::Post($this,"登录成功!",$tohref);
|
||||
}
|
||||
|
||||
$this->view->captcha = $captcha->setCaptcha();
|
||||
return true;
|
||||
}
|
||||
|
||||
function loadCaptcha()
|
||||
{
|
||||
$captcha = new Zend_Captcha_Image(array(
|
||||
'captcha' => 'Image',
|
||||
'wordLen' => 4,
|
||||
'fontsize'=>16,
|
||||
'width' => 100,
|
||||
'height' => 38,
|
||||
'dotNoiseLevel'=>2,
|
||||
'lineNoiseLevel'=>1,
|
||||
'timeout' => 300,
|
||||
'font' => '../data/fonts/ggbi.ttf',
|
||||
'imgDir' => 'vdimg/',
|
||||
'imgUrl' => '/vdimg',
|
||||
));
|
||||
return $captcha;
|
||||
}
|
||||
|
||||
function setCaptcha(Zend_Captcha_Image $captcha,$ajax = false){
|
||||
$captcha->generate();
|
||||
$_SESSION['captcha'] = $captcha->getWord();
|
||||
$url = $captcha->getImgUrl()
|
||||
.$captcha->getId()
|
||||
.$captcha->getSuffix();
|
||||
if(!$ajax)
|
||||
{
|
||||
$this->view->captcha = $url;
|
||||
}else{
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
function captchaAction()
|
||||
{
|
||||
|
@ -461,7 +462,7 @@ class AccountController extends Zend_Controller_Action
|
|||
echo $url;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function logoutAction()
|
||||
{
|
||||
$auth = Zend_Auth::getInstance();
|
||||
|
|
|
@ -7,7 +7,7 @@ class IndexController extends Zend_Controller_Action
|
|||
$this->view->config = Zend_Registry::get('config');
|
||||
$this->db=Zend_Registry::get('db');
|
||||
$this->view->theme = new Theme();
|
||||
$this->view->main_nav_pageID = "index";
|
||||
# $this->view->main_nav_pageID = "index";
|
||||
}
|
||||
|
||||
function indexAction()
|
||||
|
|
Loading…
Reference in New Issue