zoukankan      html  css  js  c++  java
  • thinkphp自动验证和自动完成

    tp验证码的自动验证小案例

    模板文件

        <form action="" method="post">
            <p>
                User:
                <input type="text" name="name1" id="">
            </p>
            <p>
                PASS:
                <input type="password" name="pass1" id="">
            </p>
            <p>
                PASS:
                <input type="password" name="rpass1" id="">
            </p>
            <p>
                CODE
                <input type="text" name="code" id="">
                <img src="{:U('yzm')}" alt="">
            </p>
            <p>
                <input type="submit" value="提交">
            </p>
        </form>    

    数据模型

    <?php 
    
    namespace HomeModel;
    
    use  ThinkModel;
    
    class UserModel extends Model{
        // 字段映射
        protected $_map=array(
            "name1"=>"name",
            "pass1"=>"pass",
    
            );
    
        // 自动验证
    
        protected $_validate =array(
            // array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),、
            // 判断验证码是否存在
            array('code','require','请输入验证码'),
            // 判断验证码是否正确
            array('code','checks','验证码错误',1,'callback',1),
            // 判断用户名是否存在
            array('name','require','请输入用户名'),
            // 判断长度
            array('name','6,12','用户名长度必须6-12位',1,'length',1),
            // 判断用户名是否存在
            array('name','','用户名已经存在',1,'unique',1),
            // 密码是否正确
            array('pass','require','密码不存在'),
            // 密码长度
            array('pass','6,12','密码长度必须6-12位',1,'length',1),
            // 俩次密码是否一致
            array('pass','check_pwd','两次密码不一致',1,'callback',1),
    
            );
    
        // 检测验证码方法
    
        public function checks(){
            $verify = new ThinkVerify();
            return $verify->check($_POST['code'], $id="");
        }
    
        // 检测密码
        public function check_pwd(){
            if ($_POST['pass1']==$_POST['rpass1']) {
                # code...'
                return true;
            }else{
                return false;
            }
        }
    
        // 自动完成
        protected $_auto=array(
            // array(完成字段1,完成规则,[完成条件,附加规则]),
            // 给状态设置默认值
            array('statu','1',1),
            // 设置时间戳
            array('time','time',1,'function'),
            // 用户名大写
            array('name','asd',1,'callback'),
    
            );
    
        function asd(){
            return strtoupper($_POST['name1']);
        }
    }
    
    
    
    
    
     ?>

    控制器文件

    <?php
    namespace HomeController;
    use ThinkController;
    class UserController extends Controller {
        public function index(){
    
            $model=M('student');
    
            // 多表查询
            // $sql="select student.name as sname,type.name tname from student,type where student.cid=type.id";
    
            // 发动sql语句
            // $data=$model->query($sql);
    
            $data=$model->field('student.name sname,type.name tname')->join("type on type.id=student.cid")->select();
    
            echo $model->getlastSql();
            echo "<pre>";
            print_r($data);
            echo "</pre>";
    
        }
    
        public function index1(){
            $model=M('student');
    
            $sql="select  student.name as sname,type.name tname from student left join type on student.cid=type.id";
               $data=$model->query($sql);
    
               $data=$model->field('student.name sname,type.name tname')->join('type on type.id=student.cid','right')->select();
               echo $model->getLastSql();
               echo "<pre>";
               print_r($data);
               echo "</pre>";
        }
    
        // 添加页面
    
    
        public function add(){
    
            if (IS_POST) {
                $model=D('user');
            
                if ($model->create()) {
                    # code...
    
                    if ($model->add()) {
                        # code...
                    }
    
                }else{
                    echo $model->getError();
                }
    
            }else{
                $this->display();
            }
        }
    
        public function add(){
            if(){
                
            }else{
                
            }
        }
    
    
        public function yzm(){
            // $Verify = new ThinkVerify();
    
            // // // 设置字体大小
            // // $Verify->fontSize=30;
    
            // // // 使用背景图像
            // // $Verify->useImgBg=true;
    
            // // // 是否干扰线
            // // $Verify->useCurve=false;
    
            // // // 是否使用小点
            // // $Verify->useNoise=true;
    
            // // // 验证码宽度
            // // $Verify->imageW=500;
    
            // // // 验证码高度
            // // $Verify->imageH=200;
    
            // // // 验证码位数
            // // $Verify->length=3;
    
            // // // 设置干扰颜色
            // // $Verify->bg=array(255,0,0);
    
            // // 设置验证码字符集合
            // // $Verify->codeSet="1234567890";
    
            // // 设置字体
            // $Verify->fontttf="STXINWEI.TTF";
    
            // $Verify->zhSet="我爱你中国";
    
            // // 使用中文
            // $Verify->useZh=true;
            // $Verify->entry();
    
            $Verify =     new ThinkVerify();
            // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
            $Verify->fontttf="STXINWEI.TTF";
            $Verify->zhSet="我爱你中国";
            $Verify->length=1;
            $Verify->imageW=100;
            $Verify->useZh = true; 
            $Verify->entry();
        }
    
        function check_verify($code, $id = ''){
            $verify = new ThinkVerify();
            return $verify->check($code, $id);
        }
    public function yzm1(){ if (IS_POST) { # code... echo "<pre>"; print_r($_SESSION); echo "</pre>"; if ($this->check_verify($_POST['code'])) { echo "1"; }else{ echo "2"; } }else{ $this->display(); } } }
  • 相关阅读:
    interview
    lvs简介
    编译参数说明
    nginx-arch
    network
    linux 密码修改方法
    ps命令详解
    sed 命令+正则表达式
    LINUX SCP 命令详解
    linux下mysql的root密码忘记解决方
  • 原文地址:https://www.cnblogs.com/healy/p/7522807.html
Copyright © 2011-2022 走看看