tp5的验证码一直通不过验证?虽暂时解决,还是有疑问

浏览:9447 发布日期:2016/10/16 分类:求助交流 关键字: tp5 验证码 输入错误
用的tp5.0完整版

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'
            ]);
最佳答案
评论( 相关
后面还有条评论,点击查看>>