zoukankan      html  css  js  c++  java
  • 验证码上传文件

    文件上传:

    <?php
    namespace HomeController;
    use ThinkController;
    
    header("content-Type: text/html; charset=Utf-8");
    class TestController extends Controller   //如果不继承父类它就不是一个操作方法。
    {
        public  function  shangchuan(){
            $this->show();
        }
        
        public function wjsc(){
            $u = new ThinkUpload();  //使用这句话来把文件上传的对象给造出来(造对象)。造好对象后就可以使用这个对象里面的方法来进行文件上传了。
            $u->maxSize = 1024000;    //设置文件大小  最大只能到这么大
            $u->rootPath = "./Public/";    //设置文件存放的根路径。
            $u->savePath = "./upload/";    
            //设置当前上传的文件存放的位置
            $u->exts = array('jpg', 'gif', 'png', 'jpeg');
            $info = $u->upload();    //上传文件并且返回文件信息
            if($info){
                echo "上传成功,文件存放在:
                {$info["file"]['savepath']}";
    //返回的文件信息$info是个二维数组。$info是个关联数组,因为它支持多文件一起上传,索引应该是文件选择的form表单中的name值。
    //$info它里面存的信息是多个文件的信息。是个二维数组。
            }else{
                echo $u->getError();
            }
        }
    }

    模板文件:

    <!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="__ROOT__/Public/js/jquery-1.11.2.min.js"></script>
    
    </head>
    
    <body>
    
    <h1>文件上传</h1>
    
    <form action="__CONTROLLER__/wjsc" method="post" enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="上传" />
    </form>
    
    </body>
    
    </html>

    验证码学习:

    控制器的类文件 TestController.class.php

    <?php
    namespace HomeController;
    use ThinkController;
    
    header("content-Type: text/html; charset=Utf-8");
    class TestController extends Controller   //如果不继承父类它就不是一个操作方法。
    {
    public function yanzheng(){
            $this->show();
        }
        
    //用来生成验证码的操作方法:
    
        public function yzm(){
            $v = new ThinkVerify();            //先造一个验证码的对象出来。
            //$v->useImgBg = true;        //如果把这个背景图打为true后,验证码的背景图会随机变换。
            //$v->fontSize = "56px";    //设置验证码字体的大小
            //$v->imageW = "100";        //调整验证码图片的大小
            //$v->imageH = "30";        
            //$v->length = 2;            //设置验证码的位数
            //$v->useZh = true;            //开启了中文验证码  需要加字体文件。
            //$v->fontttf = "simhei.ttf";    //生成中文验证码
            $v->entry();    //生成验证码
        }
    //用来验证验证码的操作方法:
    
        public function  yz(){
            $yzm = $_POST["yzm"];        //首先把用户给的验证码取出来
            $v = new ThinkVerify();        //然后去验证用户给的验证码对不对,造验证码对象。
            if($v->check($yzm)){    //把用户输入的验证码放进去就可以用check方法来检验了。这里如果验证成功就返回true,验证错误就返回false。
                $this->ajaxReturn("OK","eval");
            }else{
                $this->ajaxReturn("NO","eval");
            }
    //这个验证码使用起来非常简单,生成的话造完对象之后调生成的方法。验证的话,造完对象之后调验证的方法。并且把用户给的值,扔到括号里面作为参数就可以了
        }
        
        
    }

    模板文件yanzheng.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="__ROOT__/Public/js/jquery-1.11.2.min.js"></script>
    </head>
    
    <body>
    
    <h1>验证码</h1>
    
    <img src="__CONTROLLER__/yzm" id="img"/>
    <input type="text" name="yzm" id="txt" />
    <input type="button" id="btn" value="验证" />
    
    
    </body>
    <script type="text/javascript">
        $("#btn").click(function(){
            var yzm = $("#txt").val();            //取到用户输入的验证码
            $.ajax({
                url:"__CONTROLLER__/yz",            //指向哪一个验证方法来验证呢
                data:{yzm:yzm},
                type:"POST",
                dataType:"TEXT",
                success:function (data){
                    if(data.trim()=="OK"){
                        alert("成功");
                    }else{
                        alert("失败");
                    }
                }
            });
        })
        
        //更换验证码的方法就是在点击事件里面给它重新赋一个src就可以了。
        $("#img").click(function(){        //当我点击这张图的时候,我让它的src属性重新改一下,改完src属性之后,这个属性会重新去请求一遍的。只要改了就能重新请求。所以这样就能重新生成验证码。
            var sjs = Math.floor(Math.random()*100);    //以后做点击更换验证码的时候,一定要加上一个随机数,以防它出现这种缓存的情况。不给你刷新的情况,加上随机数后让每一次都变得不一样,不一样的话点击后就重新刷新了。
            $(this).attr("src","__CONTROLLER__/yzm/code/"+sjs);
        })
        
    </script>
    
    </html>

    模板文件yz.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="__ROOT__/Public/js/jquery-1.11.2.min.js"></script>
    
    </head>
    
    <body>
    
    <form action="__ACTION__" method="post">
    <input type="text" name="Uid" id="uid" /><span id="ts"></span>
    <input type="submit" value="验证"/>
    </form>
    
    </body>
    
    <script type="text/javascript">
    $("#uid").blur(function(){
        var uid = $(this).val();
        $.ajax({
            url:"__ACTION__",
            data:{Uid:uid},
            type:"POST",
            dataType:"TEXT",
            success:function(data){
                if(data.trim()=="OK"){
                    $("#ts").html("验证通过");
                }else{
                    $("#ts").html("用户名不能为空");
                }
            }
        });
    })
    </script>
    </html>
  • 相关阅读:
    linux centos6.4 php连接sql server2008
    Windows下连接php5.3+sql server2008
    解决:安装SQl 2008为SQL Server代理服务提供的凭据无效
    Linux下查看文件夹或目录大小
    Sql 子查询
    Linux 删除空行
    shell中的IFS详解
    Linux 文件名匹配
    Linux Shell逻辑运算符和表达式详解
    转:shell 经典, shell 十三问
  • 原文地址:https://www.cnblogs.com/shandayuan/p/7500296.html
Copyright © 2011-2022 走看看