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();
    }
    

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>

           

二、文件上传

上传参数

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

//文件上传
    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>

时间: 2025-01-07 21:03:13

Thinkphp 验证码、文件上传的相关文章

thinkphp实现文件上传

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

ThinkPHP之文件上传

在项目当中,我们有的时候需要上传图片的功能,简单的从面相过程的方法是相对较为复杂的,要一步一步的来,如果用框架的话,相对就简单了许多,主要就是方法以及每一个变量所代表的意义,然后就是一些注意的地方了. 首先,从视图页面说起,要先做好文件的上传表单控件,这里我就出现了一个错误,没有加上文件的特有属性而导致控制器取不到文件,如下所示一个简单的界面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

ThinkPHP讲解(十一)——验证码和文件上传

一.验证码 1.页面前端显示 (验证码是图片标签,来源是控制器里的yzm()操作方法) <h1>登录</h1> <form action="__ACTION__" method="post"> <div>用户名:<input type="text" name="uid"/></div> <div>密码:<input type="

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

ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体 汉字的验证码:ThinkPHP/Library/Think/Verify/zhttfs/添加中文的字体格式 更改字体:ttf格式 关于验证码的一些知识点: 1.例题:通过验证码实现用户的登录,并利用jquery实现点击图片验证码

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

验证码 TP框架中自带了验证码类 位置:Think/verify.class.php 在LoginController控制器中创建生存验证码的方法 login.html登陆模板中 在LoginController控制器中判断验证码是否正确并且判断登陆是否成功 文件上传 用到的知识点: 1.文件上传的时候,要设置表单的enctype属性 2.$_FILE[名字][]用来接收文件的信息 第二维的字段: name size error type tmp_name 3.move_uploaded_fil

ThinkPHP - 文件上传

获取上传类 ThinkPHP的扩展中提供了文件上传类库UploadFile,可以在在http://www.thinkphp.cn/extend/224.html下载,或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含上传扩展类了.如果是单独下载的上传类库,把解压后的UploadFile.class.php 放入ThinkPHP/Extend/Library/ORG/Net/(如果没有请手动创建)目录下面. 效果: 前台代码: 1 <

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

内容目录: 文件上传 HTML Form表单提交 ajax提交 原生ajax提交 jQuery Ajax提交 验证码+session 文件和图片的上传功能

Webform 文件上传、 C#加图片水印 、 图片验证码

文件上传:要使用控件 - FileUpload 1.如何判断是否选中文件? FileUpload.FileName - 选中文件的文件名,如果长度不大于0,那么说明没选中任何文件 js - f.value.length 2.如何保存到服务器上? FileUpload.SaveAs("绝对路径"); 3.如何获得绝对路径? 先编写相对路径 - "UpLoads/abc.txt" 将相对路径映射成绝对路径 - Server.MapPath("UpLoads/a

2016/05/19 thinkphp 3.2.2 文件上传

显示效果:  多文件上传.  这里是两个文件一起上传 上传到文件夹的效果: ①aa为调用Home下common文件夹下的function.php  中的rname方法  实现的 ②cc为调用与Home平级文件夹common下的common文件夹下的function.php 以上是放公共方法的地方   程序可以自动调用 ③一瓶水.gif 的显示: 在linux操作系统下不会出现乱码   但在windows下会出现乱码 解决办法:找到核心目录  thinkphp下的library下的Upload下的