一、验证码

1.页面前端显示 (验证码是图片标签,来源是控制器里的yzm()操作方法)

<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"/><img id="yzm" src="__CONTROLLER__/yzm"/></div>
<input type="submit" value="登录"/>
</form>

  

注意:点击验证码进行刷新,使用jq

<script type="text/javascript">
$(document).ready(function(e) {
$("#yzm").click(function(){
$(this).attr("src","__CONTROLLER__/yzm");
})
});
</script>

  

2.后端验证码生成,操作方法yzm()

//生成验证码
function yzm()
{
$config=array(
"footSize"=>15,
"imgW"=>100,
"imgH"=>15,
"length"=>4,
"useZh"=>true, ); $Verify=new \Think\Verify($config); //引用验证码类Verify
$Verify->entry(2);//生成验证码标示为2
}

  

3.登陆后盾操作方法:Login()

function Login()
{
if(empty($_POST))
{
$this->display();
}
else
{
$code=$_POST["yzm"];
$verify=new \Think\Verify();
$z=$verify->check($code,2); //检测验证码
if($z)
{
if($_POST["uid"]!=""&&$_POST["pwd"]!="")//判断账号和密码是否为空
{
$uid=$_POST["uid"];
$pwd=$_POST["pwd"];
$model=D("user");
$z=$model->field("pwd")->find($uid); if($z["pwd"]==$pwd)
{
session("uid",$uid);
$this->success("登陆成功",U("Main/Main"));
}
else
{
$this->error("登陆失败","Login");
}
}
else
{
$this->error("用户名或密码不能为空","Login",1);
}
}
else
{
$this->error("验证码错误!");
}
}
}

  

二、文件上传

1.文件上传前端:shangchuan.html

<body>
<h1>文件上传</h1>
<form action="__ACTION__" enctype="multipart/form-data" method="post">
<div><input type="file" name="photo"/></div>
<div><input type="submit" value="提交"/></div>
</form>
</body>

  

2.后端操作方法:shangchuan()

//上传表单
function ShangChuan()
{
if(empty($_FILES))
{
$this->display();
}
else
{
$upload=new \Think\Upload();//实例化上传类
$upload->maxSize=3145728;//上传文件大小
$upload->exts=array("jpg","gif","png","jpeg");//上传文件格式
$upload->rootPath='./Public/Uploads/';
//$upload->savaPath='Uploads/';
$upload->saveName="" ; $info=$upload->upload();
//var_dump($info);
if($info)
{
$this->success("上传成功");
}
else
{
$this->error($upload->getError(),"ShangChuan");
}
}
}

  

三、获取ip地址

function ip()
{
$ip=get_client_ip(); //获取客户端ip地址 $IP=new Org\Net\Iplocation("UTFWry.dat"); //实例化类,参数表示ip地址库文件
$area=$IP->getlocation($ip); //获取某个ip地址所在的位置 }

  

ThinkPHP讲解(十一)——验证码和文件上传的更多相关文章

  1. PHP之ThinkPHP框架(验证码、文件上传、图片处理)

     验证码 验证码是框架自带有的,比之前使用GD库简单方便许多,其实现原理基本相似,都是生成图片,保存验证码值到Session中,表单提交验证码,然后进行值的对比验证. 简单的显示: <form ...

  2. Thinkphp 验证码、文件上传

    一.验证码 验证码参数 例题:登录时验证下验证码 LoginController.class.php <?php namespace Home\Controller; use Think\Con ...

  3. 6月19 使用tp框架生成验证码及文件上传

    ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think ...

  4. ThinkPHP3验证码、文件上传、缩略图、分页(自定义工具类、session和cookie)

    验证码 TP框架中自带了验证码类 位置:Think/verify.class.php 在LoginController控制器中创建生存验证码的方法 login.html登陆模板中 在LoginCont ...

  5. 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...

  6. SpringMVC文件上传下载(单文件、多文件)

    前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...

  7. python运维开发(二十一)----文件上传和验证码+session

    内容目录: 文件上传 验证码+session 文件和图片的上传功能 HTML Form表单提交,实例展示 views 代码 HTML ajax提交 原生ajax提交,XMLHttpRequest方式上 ...

  8. thinkphp实现文件上传

    文件上传详细讲解 http://www.thinkphp.cn/info/194.html 上传根目录不存在问题解决方法 http://www.thinkphp.cn/topic/10779.html

  9. THINKPHP源码学习--------文件上传类

    TP图片上传类的理解 在做自己项目上传图片的时候一直都有用到TP的上传图片类,所以要进入源码探索一下. 文件目录:./THinkPHP/Library/Think/Upload.class.php n ...

随机推荐

  1. Node.js的高性能封装 Express.js

    Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用.Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了W ...

  2. 李洪强iOS经典面试题124

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现 ...

  3. 序列化,反序列化,模拟ATM机

    package com.bank.unionpay; //银行卡的接口 public interface I_yinhangka { //抽象方法 //public abstract默认修饰抽象的 p ...

  4. mysql主从复制过滤

    主从复制过滤: 配置文件中的[mysqld]块中: master:(考虑到即时点还原一般不在主过滤) binlog_do_db= #数据库白名单 binlog_ignore_db= #数据库白名单 s ...

  5. iptables防火墙作为基本需求的配置

    企业中使用iptables防火墙:(一般不要在命令中输入规则) # Firewall configuration written by system-config-firewall# Manual c ...

  6. JAVA中JDBC连接数据库

    这里列举了JDBC连接Oracle . SQLServer .MySQL 三种 数据库 1.Oracle连接(导入classes12.jar 包) public static Connection g ...

  7. respond.js

    Respond.js,低版本浏览器也能够支持媒体查询 在之前有篇文章也是介绍IE6,7,8支持媒体查询的(查看),Respond.js这个比css3-mediaqueries更为强大一些,它可以支持l ...

  8. redis集群搭建

    1.  Redis Cluster的架构图.            (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群 ...

  9. 安装好php后,配置httpd以便支持php3脚本

    Apache是目前应用最广的Web服务器,PHP是一种类似ASP的易学的脚本语言,而且性能和功能都比ASP要强,而MySQL又是一个Linux上应用最多的数据库系统,特别是用于网站建设,这3个软件均是 ...

  10. Python使用split使用多个字符分隔字符串

    Python的str类有split方法,但是这个split方法只能根据指定的某个字符分隔字符串,如果要同时指定多个字符来分隔字符串,该怎么办呢? 幸运的是python的re模块中提供的split方法可 ...