m_Orchestrate learning system---二、如何实现验证码自动点击刷新
m_Orchestrate learning system---二、如何实现验证码自动点击刷新
一、总结
一句话总结:传过去的url带随机数来避免读取缓存
onclick="this.src='{:captcha_src()}?'+Math.random();"
1、如何实现验证码自动点击刷新?
<img width="100%" style="cursor: pointer" src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}?'+Math.random();" /
1、鼠标手型
2、点击事件
3、路径写法,问号位置,加号位置,单引号位置
2、thinkphp验证码如何验证?
$captcha = new \think\captcha\Captcha();
if (!$captcha->check($data['code'])) {
$this->error('验证码错误');
}
<?php
namespace app\index\controller;
use think\Loader;
use think\Validate; use app\index\controller\Base; class Login extends Base
{
//登录
public function login()
{
if(request()->isPost()){
//1、获取用户从页面上传过来的账号和密码
$data=input('post.');
// dump($data);die;
//2、对获取的数据进行验证
$captcha = new \think\captcha\Captcha();
if (!$captcha->check($data['code'])) {
$this->error('验证码错误');
}
$validate = Loader::validate('Login');
if(!$validate->scene('login')->check($data)){
$this->error($validate->getError()); die;
} //3、在数据库中查找此用户和密码,找到则登录成功,没找到则登录失败
$res=db('user')->where('username',$data['username'])->where('password',md5($data['password']))->where('status',$data['status'])->find();
//4、如果在数据库中查找到数据,则判断是老师还是学生,跳转到相应的页面去,没有就直接返回错误界面
if($res){
if($data['status']) $this->success("即将跳转到老师界面!!");
else $this->success("即将跳转到学生界面!!");
}else{
$this->error('用户名或者密码错误或者未注册!!');
} } return view();
}
3、thinkphp如何跨模块调用?
实例
if($data['status']) $this->success("即将跳转到老师界面!!",url('teacher/index/index'));
else $this->success("即将跳转到学生界面!!",url('student/index/index'));
参考手册
url 和 控制器中的跳转和重定向

4、如何实现button的链接?
在button外面套上a标签就好,或者用js
同理,如果实现图片链接,就在图片img标签外面套上a标签就好
因为能超链接的不是a就是js,要不就是form
用a标签来实现
<a href="链接的地址"><img src="图片的URL" width="图片的宽度" height="图片的高度" border="边框"></a>
定义和用法
<a> 标签定义超链接,用于从一张页面链接到另一张页面。
<a> 元素最重要的属性是 href 属性,它指示链接的目标。
<a href="javascript:;" class="tpl-table-images-content-i">
<div class="tpl-table-images-content-i-info">
<span class="ico">
<img src="__TEACHER__/assets/img/user02.png" alt="">追逐
</span> </div>
<span class="tpl-table-images-content-i-shadow"></span>
<img src="__TEACHER__/assets/img/a1.png" alt="" >
</a>
二、内容在总结中
项目地址
fry404006308/m_Orchestrate: m_Orchestrate
https://github.com/fry404006308/m_Orchestrate
m_Orchestrate learning system---二、如何实现验证码自动点击刷新的更多相关文章
- m_Orchestrate learning system---十二、为什么thinkphp验证场景里面的多个属性之间是逗号
m_Orchestrate learning system---十二.为什么thinkphp验证场景里面的多个属性之间是逗号 一.总结 一句话总结:因为是数组啊 1 protected $scene ...
- 利用onekeyup即可实现验证码的点击刷新功能
显示验证码 首先在Home/Controller下创建一个公共控制器PublicController 1 <php2 namespace Home\Controller;3 4 use Thin ...
- ThinkPHP 实现验证码渲染、校验、点击刷新
一.在控制器中写方法,生成验证码,代码如下: /** * 验证码生成 * expire 验证码的有效期(秒) * useImgBg 是否使用背景图片 默认为false * fontSize 验证码字体 ...
- m_Orchestrate learning system---二十二、html代码如何变的容易
m_Orchestrate learning system---二十二.html代码如何变的容易 一.总结 一句话总结:(结构清晰之后构建页面就变得超级容易了)(多做多用一下子就熟了) 1.文章显示页 ...
- m_Orchestrate learning system---三十二、数据库字段判断为空时容易出现问题,如何从根本上解决这个问题
m_Orchestrate learning system---三十二.数据库字段判断为空时容易出现问题,如何从根本上解决这个问题 一.总结 一句话总结:字段禁止为空,设置默认值0即可 禁止 空 默认 ...
- Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)
In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...
- m_Orchestrate learning system---二十七、修改时如何快速找到作用位置
m_Orchestrate learning system---二十七.修改时如何快速找到作用位置 一.总结 一句话总结:找人,找起作用的位置真的重要,找到就事半功倍了 加载页面的时候观察在f12的e ...
- m_Orchestrate learning system---三、session使用完整流程是什么
m_Orchestrate learning system---三.session使用完整流程是什么 一.总结 一句话总结: 1.在登录成功之后设置session和cookie 2.在公共控制器里面使 ...
- m_Orchestrate learning system---三十六、如何修改插件的样式(比如ueditor)
m_Orchestrate learning system---三十六.如何修改插件的样式(比如ueditor) 一.总结 一句话总结:所有的js,html插件,修改样式无非是两种,一是直接修改css ...
随机推荐
- C-结构体应用(10)
结构体是用来定义多种类型的复合类型,在 C语言中与类的区别在于结构体注重的是数据而类除了数据还包含函数,第2点区别在于结构体所声明的成员默认是"public"点.而类的默认是pri ...
- js 获取手机浏览器类型,修改css文件的class的值
/*========================================= 函数功能:获取浏览器类型 =========================================*/ ...
- win10中让Visual Studio默认使用Administrator权限运行
https://stackoverflow.com/questions/9654833/how-to-run-visual-studio-as-administrator-by-default Win ...
- android中进程的优先级
android中进程的优先级
- php后期静态绑定
php后期静态绑定 自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类. 虽然也可以调用非静态方法,但是不会在运行时绑定. static 不再只是简 ...
- poj--3207--Ikki's Story IV - Panda's Trick(2-sat)
Ikki's Story IV - Panda's Trick Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %I64d ...
- 剑指offer——06旋转数组的最小数字(Python3)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- 对MySQL交换分区的实践
前言 在介绍交换分区之前,我们先了解一下 mysql 分区. 数据库的分区有两种:水平分区和垂直分区.而MySQL暂时不支持垂直分区,因此接下来说的都是水平分区.水平分区即:以行为单位对表进行分区.比 ...
- autocomplete for password
<input id="userPassword" type="password" autocomplete="current-password& ...
- DOM基础知识(Node对象、Element对象)
5.Node对象 u 遍历节点 u 父节点 .parentNode - 获取父节点—> 元素节点或文档节点 .parentElement - 获取父元素节点—> 元素节点 u 子节 ...