请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

captcha_check($captcha)的返回值总是false

老师

关于在admin应用下的login控制器下的check方法中,加入以下代码:

if(!captcha_check($captcha)){
   return show(config("status.error"),lang('incorrect_captcha'));
}

但是captcha_check($captcha)的返回值总是false, 检查过app\middleware.php 内的 Session初始化已打开,如下:

// Session初始化
\think\middleware\SessionInit::class

我也试过 dump(session(‘captcha’))后,得到以下值

^ array:1 [
 "key" => "$2y$10$5VLql8/yKnkcuMQBgFvmwu9gv24n3uwDNMyfjFzVi1jtHS2aKa0kq"]

追踪到 \vendor\topthink\think-captcha\src\Captcha.php的以下位置,发现是$res 的值是false, 而 $code是获得我所输入的正确的验证码的。

 /**
     * 验证验证码是否正确
     * @access public
     * @param string $code 用户验证码
     * @return bool 用户验证码是否正确
     */
    public function check(string $code): bool
    {
        if (!$this->session->has('captcha')) {
            return false;
        }

        $key = $this->session->get('captcha.key');

        $code = mb_strtolower($code, 'UTF-8');

        $res = password_verify($code, $key);

        if ($res) {
            $this->session->delete('captcha');
        }

        return $res;
    }

请问是我哪里还没有设置好吗?

正在回答 回答被采纳积分+3

3回答

野生码农在线co腚 2020-04-03 20:57:21

追踪到 \vendor\topthink\think-captcha\src\Captcha.php的以下位置,发现是$res 的值是false

check方法每一步都打印了吗

halt($this->session->has('captcha'));

halt($this->session->get('captcha.key'))

...

...

0 回复 有任何疑惑可以回复我~
  • 提问者 dannydyf #1
    halt($this->session->has('captcha')); 得到ture
    halt($this->session->get('captcha.key')) 得到类似“$2y$10$dc1GU1o0Tget.8LNrKqBseXk6THxbWj1Rk2xG8MnrhtqCW1EZEJnK”这样的字符串
    回复 有任何疑惑可以回复我~ 2020-04-03 21:04:34
  • 野生码农在线co腚 回复 提问者 dannydyf #2
    那接着往下走呀  halt(password_verify($code, $key))
    回复 有任何疑惑可以回复我~ 2020-04-03 21:05:30
  • 野生码农在线co腚 回复 提问者 dannydyf #3
    dump(mb_strtolower($code, 'UTF-8'))
    回复 有任何疑惑可以回复我~ 2020-04-03 21:06:30
提问者 dannydyf 2020-04-03 01:03:37

已经装了,验证码能正常显示的。

0 回复 有任何疑惑可以回复我~
  • 是否需要在全局的middleware.php设置,而不能在应用的middleware.php设置 SessionInit::class
    回复 有任何疑惑可以回复我~ 2020-10-05 15:01:13
面对疾风吧SSS 2020-04-02 23:09:51

是不是没有composer扩展包呀

https://img1.sycdn.imooc.com//szimg/5e86001109010b2205860279.jpg

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信