Thinkphp 验证码、文件上传

一、验证码

 

验证码参数

例题:登录时验证下验证码

LoginController.class.php

<?php
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller
{public function Login(){if(empty($_POST)){$this->display();    }    else{//判断验证码是否正确$code = $_POST["yzm"];//用户输入的验证码的值$verify = new \Think\Verify(); //生成验证码 if($verify->check($code)){if($_POST["uid"]!=""){$model = D("users");        $uid = $_POST["uid"];$pwd = $_POST["pwd"];$attr = $model->field("Pwd")->find($uid);//echo $attr["pwd"];if($pwd == $attr["pwd"]){session("uid",$uid);$this->success("登录成功","Main");}else{$this->error("登录失败");    }}else{$this->error("登录失败");    }}else{$this->error("验证码错误");    }}}//生成验证码的操作public function yzm(){$config =    array(   'fontSize'    =>    30,    // 验证码字体大小    'length'      =>    5,     // 验证码位数 //'useNoise'    =>    false, // 关闭验证码杂点'imageW'  => 200,//宽度'imageH'  => 100,//高度//'useZh' => true,//中文验证码//'fontttf' => 'Arvo-Regular.ttf',//指定验证码字体
        );$Verify = new \Think\Verify($config);//$Verify->fontttf = '7.ttf';  // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->entry();    }
View Code

Login.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../../../../Public/four/llx/js/jquery-1.3.2.js"></script>
</head><body>
<h1>登录</h1>
<form action="__ACTION__" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="password" name="pwd" /></div>
<div>验证码:<input type="text" name="yzm" /><br />
<img id="yzm" src="__CONTROLLER__/yzm" /></div>
<input type="submit" value="登录" /></form>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {$("#yzm").click(function(){//点击图片验证码改变$(this).attr("src","__CONTROLLER__/yzm");})
});
</script>
View Code

           

二、文件上传

上传参数

每个文件信息又是一个记录了下面信息的数组,包括:

 

//文件上传public function ShangChuan(){if(empty($_FILES)){$this->display();     }else{$upload = new \Think\Upload();// 实例化上传类$upload->maxSize = 3145728 ;// 设置附件上传大小$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型//$upload->mimes = '';$upload->rootPath = './Public/';$upload->savePath = 'Uploads/'; // 设置附件上传目录$upload->saveName = '';//保持上传文件名不变// 上传文件   $info = $upload->upload();var_dump($info);if(!$info){$this->error($upload->getError());}else{// 上传成功 获取上传文件信息foreach($info as $file){        $url=$file['savepath'].$file['savename'];echo $url;$this->assign("url",$url);$this->display();//$this->success('上传成功!');
                  }}}    }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文件上传</title>
</head><body>
<form action="__ACTION__" enctype="multipart/form-data" method="post" ><input type="file" name="photo" />
<input type="submit" value="提交" ></form>
</body>
</html>

转载于:https://www.cnblogs.com/ds-3579/p/5602433.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS实验教程——实验四十七:数据驱动页工具批量制作甘肃省各地级市人口七普专题图集

本实验详细讲解利用ArcGIS数据驱动页工具,制作甘肃省各地级市人口七普专题图集。 文章目录 1. 数据驱动页工具简介2. 甘肃省各地级市人口七普专题图集2.1 符号化及标注2.2 数据驱动页的创建2.3 数据驱动页面文本操作2.4 数据驱动页的导出1. 数据驱动页工具简介 数据驱动页面是…

为什么Java有GC调优而没听说过有CLR的GC调优?

前言在很多的场合我都遇到过一些群友提这样的一些问题&#xff1a;为什么Java有GC调优而CLR没有听说过有GC调优呢&#xff1f;到底是Java的JVM GC比较强还是C#使用的.NET CLR的GC比较强呢&#xff1f;其实业内已经有几位大佬的高赞文章和大家分享一下&#xff0c;主要讨论JVM和…

Ubuntu16.04 - 安装RabbitVCS,linux下的TortoiseSVN!!!

RabbitVCS 官网&#xff1a;http://rabbitvcs.org/ 1&#xff0c;添加PPA源。在shell里面执行下面命令&#xff1a; sudo add-apt-repository ppa:rabbitvcs/ppa 这个命令执行完毕后&#xff0c;查看执行结果看是否密钥导入成功&#xff0c;成功截图&#xff1a; 如果导入密钥失…

8 种最坑的SQL错误用法

1、LIMIT 语句 2、隐式转换 3、关联更新、删除 4、混合排序 5、EXISTS语句 6、条件下推 7、提前缩小范围 8、中间结果集下推 总结 sql语句的执行顺序&#xff1a; FROM <left_table>ON <join_condition><join_type>JOIN <right_table>WHERE &…

Vue根据菜单json数据动态按需加载路由Vue-router

每个菜单项对应一个页面组件&#xff0c;根据菜单项动态按需加载路由 路由配置的正确写法&#xff1a; /*router/index.js*/ import Vue from vue import Router from vue-router import url from ./url import store from ../storeVue.use(Router)const router new Router({/…

【ArcGIS微课1000例】0047:制图表达(2)---河流渐变效果的实现

当我们在ArcMap中加载河流数据时,得到的效果往往如图所示,仅仅是表示河流位置的线要素,既无法真实地反映河流的实际情况,同时在出图的时候也远没有任何美化效果。 文章目录 1.创建制图表达2.添加几何效果3.使用制图规则4.使用制图表达属性覆盖警告:这些操作会对您的数据库…

操作系统思考 第二章 进程

第二章 进程 作者&#xff1a;Allen B. Downey 原文&#xff1a;Chapter 2 Processes 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 2.1 抽象和虚拟化 在我们谈论进程之前&#xff0c;我打算先定义几个东西&#xff1a; 抽象&#xff08;Abstraction&#xff09;&…

1 句代码,搞定 ASP.NET Core 绑定多个源到同一个类

问题有群友希望将路由中的信息绑定到一个Dto对象中&#xff1a;public class DDDDDto {[FromRoute(Name "collectionId")]public Guid collectionId { get; set; }[BindProperty(Name "relativeUrl")]public string relativeUrl { get; set; } }这样就不用…

redux中间件的用法

1.定义 中间件就是一个函数&#xff0c;对store.dispatch方法进行了改造&#xff0c;在发出 Action 和执行 Reducer 这两步之间&#xff0c;添加了其他功能。 2.举例 日志中间件 import { applyMiddleware, createStore } from redux; import createLogger from redux-logger; …

设置git自动补全功能(windows版本)

目录 下载 Git 的源代码 在目录中 git/contrib/completion/ 中找到 git-completion.bash 文件 将 git-completion.bash 文件改名为 .git-completion.bash 找到本机git安装目录 将.git-completion.bash文件复制到git安装目录下的etc文件夹 打开同目录下的 bash.bashrc 文件&…

用Vue搭建一个应用盒子(二):datetime-picker

接着上次的进度&#xff0c;我们已经实现了一个todo-list。它已经具备了基本的功能&#xff0c;可以新建、编辑、删除任务。但是美中不足的是&#xff0c;它的时间设定上只能通过输入一段字符串来设定&#xff0c;很不社会。我们应该完成的效果是一个time-picker&#xff0c;日…

ArcGIS实验教程——实验四十八:ArcGIS制图表达入门及案例教程

文章目录 1. 制图表达的概念1.1 什么是地图表达1.2 使用制图表达改善要素外观1.3 制图表达的优点2. 使用制图表达2.1 创建制图表达2.2 使用制图表达来符号化图层2.3 使用制图表达规则3. 地图表达实战案例1.创建制图表达2.添加几何效果3.使用制图规则4.使用制图表达属性覆盖1. 制…

PAT (Advanced Level) 1070. Mooncake (25)

简单贪心。先买性价比高的。 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<stack> #include<queue> #include<string> #include<algorithm> using namespace std;doub…

[转]Java 18 还未用上,Java 19 最新两大特性曝光

铁打的 Java&#xff0c;流水的版本。 不久前&#xff0c;Java 18 才正式发布&#xff0c;遵循 Oracle 六个月发一版本的频率&#xff0c;Java 19 将在今年 9 月出炉。这不&#xff0c;还没等众多开发者用上 Java 18&#xff0c;关于 Java 19 最新的两个目标功能就被披露了出…

文本生成器(bzoj 1030)

Description JSOI交给队员ZYX一个任务&#xff0c;编制一个称之为“文本生成器”的电脑软件&#xff1a;该软件的使用者是一些低幼人群&#xff0c;他们现在使用的是GW文本生成器v6版。该软件可以随机生成一些文章―――总是生成一篇长度固定且完全随机的文章—— 也就是说&…

C# 值类型和引用类型讲解

要了解值类型和引用类型&#xff0c;我们首先要知道堆和栈的区别&#xff1a;① 栈是编译期间就分配好的内存空间&#xff0c;因此你的代码中必须就栈的大小有明确的定义&#xff1b;堆是程序运行期间动态分配的内存空间&#xff0c;你可以根据程序的运行情况确定要分配的堆内存…

【ArcGIS微课1000例】0048:制图表达(3)---水立方效果实现

本文讲解ArcGIS中水立方效果的实现过程(制图表达案例)。 文章目录 一、效果展示二、制作步骤1. 创建数据库及要素数据集2. 创建范围3. 创建随机点4. 创建泰森多边形5. 创建制图表达一、效果展示 基于制图表达的思想,可以容易实现多种形式的水立方效果,例如: 怎么实现的呢…

Java中this与super的区别

2019独角兽企业重金招聘Python工程师标准>>> this与super关键字在java中构造函数中的应用&#xff1a; ** super()函数 ** super()函数在子类构造函数中调用父类的构造函数时使用&#xff0c;而且必须要在构造函数的第一行&#xff0c;例如&#xff1a; class Ani…

EF选择Mysql数据源

EF添加ADO.NET实体模型处直接选择Mysql数据源 最近想到EF是连接多数据库的orm框架&#xff0c;于是就想测试下。查了一堆网上资料后&#xff0c;测试连接mysql成功。步骤如下&#xff1a; 1、在你项目Model层中nuget安装MySql.Data.Entity 如果没安装这个provider 就进行下面的…

JIRA简介及基本概念

目录 第一章 JIRA简介 1.1 什么是JIRA 1.2 JIRA的主要功能 1.3 JIRA的主要特点 1.3.1 JIRA的优点 1.3.2 JIRA的缺点 1.4 相关版本 第二章 JIRA的基本概念 2.1 JIRA 中涉及的角色 2.1.1 管理人员 2.1.2 项目管理者 2.1.3 开发人员 2.1.4 测试人员 2.2 问题 2.2.1…