码迷,mamicode.com
首页 > Web开发 > 详细

thinkphp3.2 实现登录+验证码

时间:2015-11-30 00:36:38      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:

  1 <?php
  2 
  3 namespace Model;
  4 
  5 use Think\Model;
  6 
  7 class UserModel extends Model {
  8 
  9     function checkNamePwd($mg_name, $mg_password) {
 10         //实例化模型User
 11         $user = M("User");
 12         //接收控制器传的数据,进行判断是否一致。并且返回
 13         $info = $user->getBy_mgname($mg_name);
 14         //如果name属性数据存在则进行判断对应的密码是否一致,同时返回。
 15         if ($info != null) {
 16             //验证密码
 17             if ($info[‘mg_password‘] == $mg_password) {
 18                 return $info;
 19             } else {
 20                 return false;
 21             }
 22         } else {
 23             return false;
 24         }
 25     }
 26 
 27 }
 28 
 29 ?>
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 <?php
 38 
 39 //命名空间
 40 
 41 namespace Home\Controller;
 42 
 43 use Think\Controller;
 44 
 45 class UserController extends Controller {
 46 
 47     //登录
 48     function login() {
 49         if (!empty($_POST)) {
 50 
 51             //校验验证码
 52             //实例化thinkphp3.2 框架的Verify 类,并且进行判断。
 53 
 54             $verify = new \Think\Verify();
 55             if (!$verify->check($_POST[‘captcha‘])) {
 56                 // 检查验证码
 57                 // I(‘id‘,0); 获取id参数 自动判断get或者post I(‘post.name‘,‘‘,‘htmlspecialchars‘);
 58                 //  获取$_POST[‘name‘] I(‘get.‘); 获取$_GET  
 59                 $verify = I(‘param.verify‘, ‘‘);
 60                 if (!check_verify($verify)) {
 61                     $this->error("亲,验证码输错了哦!", $this->site_url, 1);
 62                 }
 63             } else {
 64                 //实例化Model
 65                 $user = new \Model\UserModel();
 66                 $rst = $user->checkNamePwd($_POST["mg_name"], $_POST["mg_password"]);
 67                 //  == 全等于
 68                 if ($rst === false) {
 69                     echo ‘用户名或密码错误‘;
 70                 } else {
 71                     session("mg_name", $rst[‘mg_name‘]);
 72 
 73                     session("mg_id", $rst[‘mg_id‘]);
 74                     //跳转页面, 在控制器里面直接使用redirect() 方法跳转
 75                     $this->redirect(‘Index/index‘, 0);
 76                 }
 77             }
 78         }
 79         $this->display();
 80     }
 81 
 82     //退出系统
 83     function loginout() {
 84         session(null);
 85         $this->redirect(‘User/login‘, 0);
 86     }
 87 
 88 //创建验证码
 89     function verifyImg() {
 90 //设置验证码的样式
 91         $config = array(
 92             ‘imageH‘ => 25, // 验证码图片高度
 93             ‘imageW‘ => 120, // 验证码图片宽度
 94             ‘fontttf‘ => ‘4.ttf‘, // 验证码字体,不设置随机获取
 95             ‘length‘ => 4, //验证码长度
 96             ‘fontSize‘ => 14, // 验证码字体大小(px)
 97         );
 98         $verify = new \Think\Verify($config);
 99 //创建验证
100         $verify->entry();
101     }
102 
103     //“空操作”此方法用来友情提示!
104     function _empty($param) {
105         echo ‘对不起,此方法不存在!‘;
106     }
107 
108 }
109 
110 ?>
111 
112 
113 
114  <script type="text/javascript"  >
115             /*获取captcha_img 的图片*/
116             var captcha_img = $(‘.user_main_input‘).find(‘img‘);
117             //return  captcha_img的src 
118             var verifyimg = captcha_img.attr("src");
119             captcha_img.attr(‘title‘, ‘点击刷新‘);
120             //点击事件
121             captcha_img.click(function() {
122                 if (verifyimg.indexOf(‘?‘) > 0) {
123 
124                     //&random= 拼接验证码图片
125                     $(this).attr("src", verifyimg + ‘&random=‘ + Math.random());
126                 } else {
127                     $(this).attr("src", verifyimg.replace(/\?.*$/, ‘‘) + ‘?‘ + Math.random());
128                 }
129             });
130  </script>
131         
132         
133         
134         
135         
136         
137 <?php
138 
139 Common文件下面的function.php (新建)
140 /**
141  * 验证码检查  
142  * 加入全局函数
143  */
144 function check_verify($code, $id = "") {
145     $verify = new \Think\Verify();
146     return $verify->check($code, $id);
147 }
148 ?>
149 
150  

 

thinkphp3.2 实现登录+验证码

标签:

原文地址:http://www.cnblogs.com/ajason/p/5005901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!