php代码如下:
<?php
namespace app\admin\controller;
use think\Controller;
use think\Session;
use think\captcha\Captcha;
/*
*后台登录控制器
*/
class Common extends Controller{
public function login($username = null, $password = null, $verify = null){
if(request()->isPost()){
/* 检测验证码 TODO: */
if(!check_code($verify)){
$this->error('验证码输入错误!');
}
/* 登录用户 */
$Member = model('user');
$uid = $Member->login($username, $password);
if (0 < $uid) { //登录成功
//TODO:跳转到登录前页面
$this->success('登录成功!', U('Index/index'));
} else { //登录失败
switch ($uid) {
case -1:
$error = '用户不存在或被禁用!';
break; //系统级别禁用
case -2:
$error = '密码错误!';
break;
default:
$error = '未知错误!';
break; // 0-接口参数错误(调试阶段使用)
}
$this->error($error);
}
} else {
if(is_login()){
$this->redirect('Index/index');
}else{
return $this->fetch();
}
}
}php代码里用的其实是think-captcha拓展包里helper.php:function captcha_check($value, $id = "", $config = [])
{
$captcha = new \think\captcha\Captcha($config);
return $captcha->check($value, $id);
}
html:
<form action="{:url('login')}" method="post" class="login-form">
<!--<h3 class="welcome"><i class="login-logo"></i>后台管理平台</h3>-->
<h3 class="welcome">后台管理平台</h3>
<div id="itemBox" class="item-box">
<div class="item">
<i class="icon-login-user"></i>
<input type="text" name="username" placeholder="请填写用户名" autocomplete="off" />
</div>
<span class="placeholder_copy placeholder_un">请填写用户名</span>
<div class="item b0">
<i class="icon-login-pwd"></i>
<input type="password" name="password" placeholder="请填写密码" autocomplete="off" />
</div>
<span class="placeholder_copy placeholder_pwd">请填写密码</span>
<div class="item verifycode">
<i class="icon-login-verifycode"></i>
<input type="text" name="verify" placeholder="请填写验证码" autocomplete="off">
<a class="reloadverify" title="换一张" href="javascript:void(0)">换一张?</a>
</div>
<span class="placeholder_copy placeholder_check">请填写验证码</span>
<div>
<img src="{:captcha_src()}" class="verifyimg" alt="captcha" />
</div>
</div>
<div class="login_btn_panel">
<button class="login-btn" type="submit">
<span class="in"><i class="icon-loading"></i>登 录 中 ...</span>
<span class="on">登 录</span>
</button>
<div class="check-tips"></div>
</div>
</form>
验证码可以正常显示,
打印session数组,session里面竟然没有任何东西,不知道是什么情况?
各位路过的大神 帮帮忙哈


暂时性的解决方法:
无奈的按照官方另一个验证方式,居然就可以验证了。无语。。。
/* 检测验证码 TODO: */
$this->validate($verify,[
'captcha|验证码'=>'require|captcha'
]); 最佳答案