thinkphp 3.2 实现登录功能+验证码
2015-11-28 20:56
806 查看
[code]<?php namespace Model; use Think\Model; 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; } } } ?>
[code]<?php //命名空间 namespace Home\Controller; use Think\Controller; class UserController extends Controller { //登录 function login() { if (!empty($_POST)) { //校验验证码 //实例化thinkphp3.2 框架的Verify 类,并且进行判断。 $verify = new \Think\Verify(); 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 \Model\UserModel(); $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 \Think\Verify($config); //创建验证 $verify->entry(); } //“空操作”此方法用来友情提示! function _empty($param) { echo '对不起,此方法不存在!'; } } ?>
[code] <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>
[code]<?php Common文件下面的function.php (新建) /** * 验证码检查 * 加入全局函数 */ function check_verify($code, $id = "") { $verify = new \Think\Verify(); return $verify->check($code, $id); } ?>
相关文章推荐
- php 批量生成html、txt文件
- Win8.1系统下搭建IIS8.5+php-5.6运行环境教程
- PHP5中PDO的入门教程
- ubuntu下基于sqlite3后台的php环境的搭建
- php PDO调用带有out参数的存储过程(原创)
- ContentProvider实现数据共享1
- 解析php mysql 事务处理回滚操作(附实例)
- 算法_php猴子选大王_约瑟夫问题
- disable_functions php-fpm root
- php设计模式--单例模式
- 新测 thinkphp3.2 整合 PHPMailer 发送邮件
- hibernate继承关系映射方法(三)--每个具体类一张表TPC
- php 安全模式限制函数
- PHP如何检测一个UTF-8字符串里有没有繁体字
- PHP获取服务器端的相关信息
- PHP获取服务器端的相关信息
- PHP获取服务器端的相关信息
- PHP获取服务器端的相关信息
- PHP获取服务器端的相关信息
- FTP服务学习笔记之ssl/tls安全认证配置(3)