ThinkPhp学习13

原文:ThinkPhp学习13

简单登录验证

创建Login类

 1 <?php
 2     class LoginAction extends Action {
 3         function index(){
 4             $this->display();
 5         }
 6         function do_login(){
 7             //获取用户名和密码等。和数据库中比对,有该用户允许登录否则输出错误页面
 8             $username=$_POST['username'];
 9             $password=$_POST['password'];
10             $code=$_POST['code'];
11
12             if($_SESSION['verify']!==md5($code)){   //$_SESSION['verify']tp默认创建的session不需要修改成code
13                 $this->error('验证码错误!');
14             }
15
16             $m=M('User');
17             $where['username']=$username;
18             $where['password']=$password;
19             $i=$m->where($where)->count();
20             if($i>0){
21                 $this->redirect('User/index');
22             }else{
23                 $this->error('该用户不存在');
24             }
25         }
26     }
27 ?>

Login类对应的模板

1 <div style="width:400px;margin:0 auto">
2     <form action="__URL__/do_Login" method="post">
3         用户名:<input type="text" name="username" /><br/>
4         密      码:<input type="password" name="pwd" /><br/>
5         验证码:<input type='text' name='code'/><img src="__APP__/Code/code" onclick="this.src=this.src+'?'+Math.random()"/><br/>  //src=Code类下的code方法,Math.random() 避免缓存无法刷新
6         <input type="submit" value="登录"/>
7     </form>
8 </div>

创建验证码类

1 <?php
2   class CodeAction extends Action{
3       function code(){
4           import('ORG.Util.Image');
5         Image::buildImageVerify();
6       }
7   }
8
9 ?>

 

时间: 2024-08-01 23:11:22

ThinkPhp学习13的相关文章

ThinkPhp学习10

原文:ThinkPhp学习10 查询操作 Action模块 User下的search 1 public function search(){ 2 //判断username是否已经传入,且不为空 3 if(isset($_POST['username'])&&$_POST['username']!=null){ 4 //不管{是出现在$前面还是后面,只有两者紧挨着时花括号才会被当成是界定符号.不要在之间加空格,要不然就会被当作普通的花括号处理 5 $where['username']=arr

ThinkPhp学习06

原文:ThinkPhp学习06 一.简单学习修改用户信息模块 1.编写UserAction.class.php 1 <?php 2 3 class UserAction extends Action{ 4 public function index(){ 5 $m=M('User'); 6 $arr=$m->select(); 7 $this->assign('data',$arr); 8 $this->display(); 9 } 10 public function del()

ThinkPhp学习07

原文:ThinkPhp学习07 简单CRUD操作 1 public function show() { 2 $m=M('User'); 3 4 // $arr=$m->find(2); //查找id=2的数据,find只能返回一条数据 5 //2.SELECT * FROM `tp_user` WHERE ( sex=1 ) 6 // $arr=$m->where('sex=1')->select(); 7 8 //3.INSERT INTO `tp_user` (`username`,

thinkphp学习笔记9—自动加载

原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\Util\Auth类: namespace Org\Util; class Auth { } 保存到ThinkPHP/Library/Org/Util/Auth.class.php 这样我们就可以直接实例化了, new \Org\Util\Auth(); 实例化之后系统会自动加载 ThinkPHP/

thinkphp学习笔记10—看不懂的路由规则

原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂.   1.路由定义 要使用路由功能需要支持PATH_INFO,PATH_INFO是什么呢?手册中提到"要使用路由功能,前提是你的URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式的情况下不支持路由功能)," , url支持path_info,不是apache要支持path_info么,度娘讲的还算清楚一点,见下文: p

thinkphp学习笔记6—url模式

原文:thinkphp学习笔记6-url模式 入口文件是应用的唯一入口,因为可以多入口,每个应用可以对应一个入口文件,系统会从rul参数中解析当前请求的模块,控制器,操作.ThinkPHP是区分大小写的,考虑到linux是区分大小写的,所以在ThinkPHP中模块,控制器,模型等都是区分大小写的,并且使用驼峰命名规则. 如果我们直接访问入口文件index.php,url中没有给出模块,控制器,操作,系统会默认访问Home模块下的Index控制器下的index操作,因此下面的两种访问方法得到的结果

thinkphp学习笔记4—眼花缭乱的配置

原文:thinkphp学习笔记4-眼花缭乱的配置   1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展配置>动态配置,所以后面的配置权限要大于前面的,因为后面的配置会覆盖前面同名配置,同事会生辰配置缓存文件无需重复解析,减小开销. 惯例配置:在惯例配置内对大多数常用参数进行默认配置,因为惯例配置最先加载,优先级别最低,如果不需要做特殊配置的话,完全可以保持默认值,惯例配置位于ThinkPHP/Con

ThinkPhp学习02

原文:ThinkPhp学习02 一.什么是MVC                M -Model 编写model类 对数据进行操作 V -View  编写html文件,页面呈现 C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点        三.ThinkPHP的MVC对应的目录    M 项目目录/应用目录/Lib/Model V 项目目录/应用目录/Tpl C 项目目录/应用目录/Lib/Action四.url访问C     

thinkphp学习笔记5—模块化设计

原文:thinkphp学习笔记5-模块化设计 1.模块结构 完整的ThinkPHP用用围绕模块/控制器/操作设计,并支持多个入口文件盒多级控制.ThinkPHP默认PATHINFO模式,如下: http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...] 应用:由同一个入口文件访问的项目称为一个应用,在完整版的代码中就是Application 模块:一个应用下面可以包含多个模块,每个模块对应独立的目录,在完整版的代码中有Admin,