文档章节

二次开发-如何在PHPEMS引入第三方composer包-验证码实现!

高处胜寒
 高处胜寒
发布于 2018/08/04 14:28
字数 325
阅读 292
收藏 0

gregwar/captcha包为例:

https://packagist.org/packages/gregwar/captcha

第一步:

下载安装:composer require gregwar/captcha

第二步:

在master.php类文件中引入

require_once __DIR__.'/../../vendor/autoload.php';
use Gregwar\Captcha\CaptchaBuilder;

在app类中定义属性,并在构造方法中把captcha对象赋值给该属性

public $yzm;
$this->yzm =  new CaptchaBuilder;

 

第三步:

测试地址:http://127.0.0.1/index.php?test-master-test1-yzm_yz&yzm=stwzn

显示验证码和验证验证码

模板文件中:

<div class="col-xs-12">
    <h5 class="title">
        xxxxxxx
    </h5>
    <p>
        111111111111111111111


        <img src="{x2;$yzm}">
    </p>
</div>

 

<?php


class action extends app
{
    public function display()
    {
        $action = $this->ev->url(3);
        if (!method_exists($this, $action))
            $action = "index";
        $this->$action();
        exit;
    }

    private function index()
    {


        //这两步必须的,否则会不显示验证码
        $this->yzm->build();
        $_SESSION['phrase'] = $this->yzm->getPhrase(); //保存进session
        $yzm_img_url = $this->yzm->inline();

        $this->tpl->assign('yzm', $yzm_img_url);
        $this->tpl->display('test1');
    }


    //验证码验证码测试
    private function yzm_yz()
    {
        print_r($_SESSION);
        $userInput = $this->ev->get('yzm');
        //echo "<hr>";
        //echo $userInput . '-----';
        //  print_r($this->ev->get('yzm'));
       // var_dump($this->yzm->testPhrase($userInput));
        //这里这样验证始终有些问题,不建议
        //https://www.jianshu.com/p/8e4ac7852b5a
/*        if ($this->yzm->testPhrase($userInput)) {
            // instructions if user phrase is good
            echo 'ok';
        } else {
            // user phrase is wrong
            echo 'no';
        }*/

//        验证验证码
        if ($userInput === $_SESSION['phrase']) {
            echo 'ok';
        } else {
            echo 'no';
        }

    }


}

 

 

 

 

© 著作权归作者所有

高处胜寒

高处胜寒

粉丝 9
博文 213
码字总数 148499
作品 0
西安
程序员
私信 提问
在线模拟考试系统 - PHPEMS PRO

PHPEMS面向企业的版本,精简了功能,添加了redis和分库支持。 PHPEMS在线模拟考试系统主要用于构建在线考试系统,如驾照、英语等练习系统。 PC端展示: 手机端展示:

火眼
04/10
4.3K
2
PHPEMS只支持选择题题型吗?

@简单代码 你好,想跟你请教个问题:PHPEMS系统有没有尝试主观题型自动评分模块呢,对主观题自动评分系统有什么好的推荐吗?

Sunny_Zhang
2016/07/01
414
0
phpems for php 7.0 发布

phpems for php 7.0 发布了。 该版本做了大量的修改,主要是修改了`lib/db.cls.php`和`lib/tpl.cls.php` ,当然有些书写规范问题在php的严格模式下也被测试出来了。...

海诺者
2016/05/06
3.6K
9
二次开发-如何在PHPEMS-发送短信验证码(以easy-sms为例)

第一步: 下载安装 https://packagist.org/packages/overtrue/easy-sm composer require overtrue/easy-sms 第二步: 在master.php类文件中引入 requireonce DIR_ . '/../../vendor/autoload......

高处胜寒
2018/08/04
650
1
运行PHPEMS v4.1出现以下PDO问题

@海诺者 你好,想跟你请教个问题: 按照doc说明运行如下程序,出现该问题:

秃毛熊
2017/11/16
152
1

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
39分钟前
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
41分钟前
7
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
43分钟前
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
49分钟前
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部