• tp5 composer在packagist引入验证码


    1.打开官网https://packagist.org/

    2.输入验证码单词captcha,查看项目列表,并选择喜欢的,比如选择第一个

    3.用composer导入到项目中,速度慢先开启中国镜像

    composer config -g repo.packagist composer https://packagist.phpcomposer.com

    4.复制该项目的composer指令

    composer require gregwar/captcha                

    5.此时在项目的vendor下可以看到

    6.在控制器Login.php的开的头加入

    use GregwarCaptchaCaptchaBuilder;

    7.在控制器Login.php书写验证码方法

    <?php

    namespace appindexcontroller;

    use thinkController;
    use GregwarCaptchaCaptchaBuilder;

    class Login extends Controller
    {

    public function login()
    {
    header('Content-type: image/jpeg');
    $builder = new CaptchaBuilder();


    $builder->build($width = 100, $height = 40, $font = null);
    //获取验证码的内容
    $phrase = $builder->getPhrase();

    //把内容存入session
    Session('milkcaptcha',$phrase);
    //生成图片
    header('Cache-Control: no-cache, must-revalidate');
    header('Content-Type: image/jpeg');

    $builder->save('out.jpg');
    return $this->fetch('login/login');

    }

    }

    注意:加上exit(0) 并且exit(0)前面不能有任何输出

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>

    <input type="text" name="captcha" class="form-control" style="300px;">
    <a onclick="javascript:re_captcha();"><img src="../../images/out.jpg" alt="验证码" title="刷新图片" width="100" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"></a>
    </body>
    </html>
    <script>
    function re_captcha() {
    $url="";
    document.getElementById('c2c98f0de5a04167a9e427d883690ff6').src=$url;
    }
    </script>

    解析:

    保存验证码图片到public下

    <?php

    $builder->save('out.jpg');

    或者直接输出图片到网页:

    <?php

    header('Content-type: image/jpeg');

    $builder->output();

    或者生成内联图片

    <img src="<?php echo $builder->inline(); ?>"/>

    验证验证码是否正确:

    public function verify()
    {
    $request = Request::instance();
    $builder = new CaptchaBuilder();
    $userInput = $request->post('captcha');
    dump($userInput);
    if($builder->testPhrase($userInput)){
    return '正确';
    }else{
    return '错误';
    }
    exit;

    }

  • 相关阅读:
    使 Asp.net Core Hosting Bundle 立即生效
    Hosted Services require keep alive
    VS 高级保存选项,解决文件内容编码问题
    asp.net core localhost https 证书
    阿里云K8S下玩.NET CORE 3.1
    cmd 域名生效检测
    c# 通过win32 api 得到指定Console application Content
    .net framework msbuild环境搭建 (不装vs)
    Python常用模块——目录
    Python——爬虫进阶
  • 原文地址:https://www.cnblogs.com/ymdphp/p/10937856.html
Copyright © 2020-2023  润新知