入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

thinkphp 3.2 实现登录功能+验证码

创建时间:2015-11-28 投稿人: 浏览次数:3145
<?php

namespace Model;

use ThinkModel;

class UserModel extends Model {

    function checkNamePwd($mg_name, $mg_password) {
        //实例化模型User
        $user = M("User");
        //接收控制器传的数据,进行判断是否一致。并且返回
        $info = $user->getBy_mgname($mg_name);
        //如果name属性数据存在则进行判断对应的密码是否一致,同时返回。
        if ($info != null) {
            //验证密码
            if ($info["mg_password"] == $mg_password) {
                return $info;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

}

?>
<?php

//命名空间

namespace HomeController;

use ThinkController;

class UserController extends Controller {

    //登录
    function login() {
        if (!empty($_POST)) {

            //校验验证码
            //实例化thinkphp3.2 框架的Verify 类,并且进行判断。

            $verify = new ThinkVerify();
            if (!$verify->check($_POST["captcha"])) {
                // 检查验证码
                // I("id",0); 获取id参数 自动判断get或者post I("post.name","","htmlspecialchars");
                //  获取$_POST["name"] I("get."); 获取$_GET  
                $verify = I("param.verify", "");
                if (!check_verify($verify)) {
                    $this->error("亲,验证码输错了哦!", $this->site_url, 1);
                }
            } else {
                //实例化Model
                $user = new ModelUserModel();
                $rst = $user->checkNamePwd($_POST["mg_name"], $_POST["mg_password"]);
                //  == 全等于
                if ($rst === false) {
                    echo "用户名或密码错误";
                } else {
                    session("mg_name", $rst["mg_name"]);

                    session("mg_id", $rst["mg_id"]);
                    //跳转页面, 在控制器里面直接使用redirect() 方法跳转
                    $this->redirect("Index/index", 0);
                }
            }
        }
        $this->display();
    }

    //退出系统
    function loginout() {
        session(null);
        $this->redirect("User/login", 0);
    }

//创建验证码
    function verifyImg() {
//设置验证码的样式
        $config = array(
            "imageH" => 25, // 验证码图片高度
            "imageW" => 120, // 验证码图片宽度
            "fontttf" => "4.ttf", // 验证码字体,不设置随机获取
            "length" => 4, //验证码长度
            "fontSize" => 14, // 验证码字体大小(px)
        );
        $verify = new ThinkVerify($config);
//创建验证
        $verify->entry();
    }

    //“空操作”此方法用来友情提示!
    function _empty($param) {
        echo "对不起,此方法不存在!";
    }

}

?>
 <script type="text/javascript"  >
            /*获取captcha_img 的图片*/
            var captcha_img = $(".user_main_input").find("img");
            //return  captcha_img的src 
            var verifyimg = captcha_img.attr("src");
            captcha_img.attr("title", "点击刷新");
            //点击事件
            captcha_img.click(function() {
                if (verifyimg.indexOf("?") > 0) {

                    //&random= 拼接验证码图片
                    $(this).attr("src", verifyimg + "&random=" + Math.random());
                } else {
                    $(this).attr("src", verifyimg.replace(/?.*$/, "") + "?" + Math.random());
                }
            });
        </script>
<?php

Common文件下面的function.php (新建)
/**
 * 验证码检查  
 * 加入全局函数
 */
function check_verify($code, $id = "") {
    $verify = new ThinkVerify();
    return $verify->check($code, $id);
}
?>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像