1:描述问题:网站首页登陆口不管如何刷新[F5],验证码都不会变。但是点击验证码的话可以变为新的验证码!而且我们使用验证码登陆成功后同时退出来,此时登陆口的验证码还是之前使用过的验证码,没有更新!请大神帮我解决下,贴出正确的代码!因为本人不是很懂,只会照葫芦画瓢!万分感谢!无解决方案的请别回复了谢谢!
文件名:PassportController 代码如下,这个应该是控制器
/* 生成验证码 */
public function verify()
{
$config = [
'fontSize' => 19, // 验证码字体大小
'length' => 4, // 验证码位数
'imageH' => 34
];
$Verify = new Verify($config);
$Verify->entry();
}
/* 验证码校验 */
public function check_verify($code, $id = '')
{
$verify = new \Think\Verify();
$res = $verify->check($code, $id);
$this->ajaxReturn($res, 'json');
}
public function accessRules()
{
return array(
array('allow', // 允许所有用户访问 'login' 动作.
'users'=>array('*'),
),
array('allow', // 允许认证用户访问所有动作
'users'=>array('@'),
),
array('deny', // 拒绝所有的用户。
'users'=>array('*'),
),
);
}
/*
异地登录检测
*/
public function actionPlaceOtherLogin()
{
if(isset($_POST['username']) && $_POST['username']!="" && isset($_POST['pwd']) && $_POST['pwd'])
{
$siteLogin=new SiteLoginForm;
$siteLogin->username=$_POST['username'];
$siteLogin->password=$_POST['pwd'];
$siteLogin->verifyCode=$_POST['verifyCode'];
$siteLogin->rememberMe=false;
if($siteLogin->validate())//用户名密码正确
{
$userinfo=User::model()->findByAttributes(array(
'Username'=>$_POST['username'],
'PassWord'=>md5($_POST['pwd'])
));
if($userinfo->Status==0)//用户帐号没有被冻结,处于正常状态
{
if($userinfo->PlaceOtherLogin==0)//用户没有开启异地登录,则允许用户直接提交登录
{
echo "true";
}else//开启异地登录
{
//1.检查此次登录的ip与最近一次登录的ip是否相同
$lastLoginLog=Loginlog::model()->find(array(
'condition'=>'userid='.$userinfo->id,
'order'=>'id desc'
));
if($lastLoginLog->loginip===XUtils::getClientIP())//如果本次登录ip与最近一次登录ip相同则允许用户直接提交
{
echo "true";
}else//如果不同则返回通知使用短信验证
{
echo $userinfo->Phon;//需要手机接手短信验证码,返回手机号码,以便发送短信进行验证
}
}
}else//帐号被冻结
{
echo "LOCK";
}
}else {
echo "FAIL";
}
}
}
// 登陆口的文件名:index 代码如下
//
<link rel="stylesheet" type="text/css" href="<?php echo VERSION2;?>2_files/index.css">
<div class="banNer"><!--首页幻灯-->
<ul class="rslides" id="slider">
<li style="background: url(<?php echo VERSION2;?>img/banner/banner_tg.jpg) no-repeat center top;">
<li style="background: url(<?php echo VERSION2;?>img/banner/003.jpg) no-repeat center top;">
</li>
</ul>
<!--登录区域-->
<div class="login_frame_bg" <?php if(Yii::app()->user->getId())echo 'style="display:none;"';?>>
<div class="login_frame">
<span class="warningSpan"<?php if(isset($_GET['loginStatus']) && $_GET['loginStatus']=='fail') echo 'style="display:block;"';?>>用户名或密码错误</span>
<div id="myForm">
<table>
<form method="post" onsubmit="return checkLogin()" action="<?php echo $this->createUrl('passport/login');?>">
<tbody>
<tr>
<td>
<div class="login_mailbox">
<input type="hidden" name="User[position]" value="index" />
<input id="lusername" type="text" name="User[Username]" autocomplete="off" placeholder="用户名">
</div>
</td>
</tr>
<tr>
<td>
<p class="zq" id="miaoname" style="margin:-15px 0px 10px;"></p>
</td>
</tr>
<tr>
<td>
<div class="login_ps">
<input id="lpassword" type="password" name="User[PassWord]" name="LoginForm[password]" placeholder="请输入密码">
</div>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<input type="text" name="User[VerifyCode]"
class=""
placeholder="请输入右边验证码"
style=" width: 170px;
margin-right: 5px;
border-radius: 5px;
line-height: 35px;
border: 1px solid #fff;
padding-left: 5px;"
id="verifyCode"
/>
</td>
<td>
<?php
$this->widget(
'CCaptcha',
array('showRefreshButton'=>false,
'clickableImage'=>true,
'imageOptions'=>array(
'alt'=>'点击换图',
'title'=>'点击换图',
'style'=>'cursor:pointer;
background:#fff; height:27px;
border-radius:5px;'
)
)
);
?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<p class="zq" style="height: 10px;"></p>
</td>
</tr>
<tr>
<td>
<p id="miaopwd" class="zq" style="margin:-15px 0px 10px;"></p>
</td>
</tr>
<tr>
<td>
<li style=" color:#fff; font-size:12px;"><input name="User[rememberMe]" type="checkbox" style="position: relative; top: 3px; width:12px;" /> 下次自动登录<a href="javascript:;" class="forgetPwd" style=" float:right; margin-right:28px; color:white;">忘记密码?</a></li><br />
</td>
</tr>
<tr>
<td>
<button class="login-btn" id="login_btn">登录</button>
</td>
</tr>
<tr>
<td>
<span><a href="<?php echo $this->createUrl('passport/regist');?>" id="a">还没有账号?点击注册>></a></span>
</td>
</tr>
</tbody>
<form>
</table>
</div>
</div>
</div>
<div class="indIntr" style="background="achose.png" ><!--系统优势-->
<div class="why_main4 clearfix">
</div>
</div>
<script>
//登录表单检测
function checkLogin()
{
if($("#lusername").val()=="")
{
layer.tips('用户名不能为空', '#lusername');
return false;
}else if($("#lpassword").val()=="")
{
layer.tips('密码不能为空', '#lpassword');
return false;
}else if($("#verifyCode").val()=="")
{
layer.tips('验证码不能为空', '#verifyCode');
return false;
}else
{
var submitStatus=0;//提交状态初始化verifyCode
var phone=0;//手机号码初始化
//检查是否开启异地登录
$.ajax({
type:"POST",
url:"<?php echo $this->createUrl('passport/placeOtherLogin');?>",
data:{
"username":$("#lusername").val(),
"pwd":$("#lpassword").val(),
"verifyCode":$("#verifyCode").val(),
},
async:false,
success:function(msg)
{
if(msg=="true")//不用检测
{
submitStatus=1;
}else if(msg=="FAIL")//用户名或密码不正确
{
}
else if(msg=="LOCK")//用户帐户被冻结
{
submitStatus=3;
}else//需要发送手机验证码
{
phone=msg;//赋值用户手机号
submitStatus=2;
}
}
});
/*alert(submitStatus);
exit;*/
//检查是否开启异地登录
if(submitStatus==0)//用户名密码不正确
{
layer.tips('用户名,密码或验证码不正确', '#lusername', {
tips: [1, '#0FA6D8'] //还可配置颜色
});
return false;
}else if(submitStatus==3)
{
//询问框
layer.confirm('<span style="color:red;">您的帐户已被冻结,如有需要请联系客服人员</span>', {
btn: ['知道了'] //按钮
});
return false;
}else if(submitStatus==1)//直接提交
{
return true;
}else//2表示需要发送短信验证码
{
//发送验证码
$.ajax({
type:"POST",
url:"<?php echo $this->createUrl('site/sms');?>",
data:{"phone":phone,"phoneCode":"DONE"},
async:false,
success:function(msgCode)
{
if(msgCode=="SUCCESS")
{
//询问框
layer.confirm('<span style="color:red;">短信发送成功(异地登录请输入手机验证码)</span><br/>验证码<input class="text1 phoneCodeVal" name="phoneCodeVal" />', {
btn: ['确定提交'] //按钮
},function(){
if($(".phoneCodeVal").val()=="")//验证码不为空
{
layer.tips('验证码不能为空', '.phoneCodeVal');
}else{
//发送手机号与验证码去验证正确性
$.ajax({
type:"POST",
url:"<?php echo $this->createUrl('passport/userCheckPhoneAndCode');?>",
data:{"phone":phone,"phoneCode":$(".phoneCodeVal").val()},
async:false,
success:function(msgCertain)
{
if(msgCertain=="SUCCESS")//手机验证码检测通过
{
//验证通过直接进行提交登录
$.ajax({
type:"POST",
url:"<?php echo $this->createUrl('passport/codePassLogin');?>",
data:{"username":$("#lusername").val(),"pwd":$("#lpassword").val()},
async:false,
success:function(msglogin)
{
if(msglogin=="SUCCESS")//登录成功刷新当前页面
{
location.reload(); //询问框
}else//登录异常刷新当前页面
{
layer.confirm('<span style="color:red;">登录异常</span>,您可以联系客服人员', {
btn: ['知道了'] //按钮
});
}
}
});
//验证通过直接进行提交登录
}else if(msgCertain=="CODEFAIL")//验证不正确
{
layer.tips('验证码不正确', '.phoneCodeVal');
}else//手机号异常
{
layer.tips('手机号码异常', '.phoneCodeVal');
}
}
});
//发送手机号与验证码去验证正确性
}
});
}else
{
//询问框
layer.confirm('<span style="color:red;">异地登录验证-短信发送失败,可能发送次数过多</span>,您可以联系客服人员', {
btn: ['知道了'] //按钮
});
phoneAndCodeCheckStatus=0;
}
}
});
//发送短信验证码结束
return false;
}
}
}
//忘记密码
$(".forgetPwd").click(function(){
layer.open({
type: 2,
title:'找回密码',
area: ['375px','270px'],
skin: 'layui-layer-rim', //加上边框
content: ['<?php echo $this->createUrl('passport/forgetPwd');?>', 'no']
});
});
</script>
// 能帮我解决问题的才回复,或者还需要我提供什么的请留言,谢谢了,