ThinkPhp学习13
原文:ThinkPhp学习13
简单登录验证
创建Login类
<?php
class LoginAction extends Action {
function index(){
$this->display();
}
function do_login(){
//获取用户名和密码等。和数据库中比对,有该用户允许登录否则输出错误页面
$username=$_POST['username'];
$password=$_POST['password'];
$code=$_POST['code']; if($_SESSION['verify']!==md5($code)){ //$_SESSION['verify']tp默认创建的session不需要修改成code
$this->error('验证码错误!');
} $m=M('User');
$where['username']=$username;
$where['password']=$password;
$i=$m->where($where)->count();
if($i>0){
$this->redirect('User/index');
}else{
$this->error('该用户不存在');
}
}
}
?>
Login类对应的模板
<div style="width:400px;margin:0 auto">
<form action="__URL__/do_Login" method="post">
用户名:<input type="text" name="username" /><br/>
密 码:<input type="password" name="pwd" /><br/>
验证码:<input type='text' name='code'/><img src="__APP__/Code/code" onclick="this.src=this.src+'?'+Math.random()"/><br/> //src=Code类下的code方法,Math.random() 避免缓存无法刷新
<input type="submit" value="登录"/>
</form>
</div>
创建验证码类
<?php
class CodeAction extends Action{
function code(){
import('ORG.Util.Image');
Image::buildImageVerify();
}
} ?>
ThinkPhp学习13的更多相关文章
- ThinkPHP学习总结
ThinkPHP学习总结 网站开发使用的thinkPHP5.0在此总结备查 MVC关系功能图 一.Thinkphp开发规范 l 类 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...
- JavaScript学习13 JavaScript中的继承
JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...
- ThinkPhp学习12
原文:ThinkPhp学习12 二.输出模板内容 (重点) a.display 1.display中没有参数 $this->display(); 2.可以带参数 $this ...
- ThinkPhp学习11
原文:ThinkPhp学习11 一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...
- ThinkPhp学习10
原文:ThinkPhp学习10 查询操作 Action模块 User下的search public function search(){ //判断username是否已经传入,且不为空 if(isse ...
- ThinkPhp学习07
原文:ThinkPhp学习07 简单CRUD操作 public function show() { $m=M('User'); // $arr=$m->find(2); //查找id=2的数据, ...
- ThinkPhp学习08
原文:ThinkPhp学习08 一.普通查询方式 a.字符串 $arr=$m->where("sex=0 and username='gege'")->find(); ...
- ThinkPhp学习09
原文:ThinkPhp学习09 三.区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系 //SELECT * FR ...
- ThinkPhp学习06
原文:ThinkPhp学习06 一.简单学习修改用户信息模块 1.编写UserAction.class.php <?php class UserAction extends Action{ pu ...
随机推荐
- 演练5-2:Contoso大学校园管理2
一.添加列标题排序功能 我们将增加Student/Index页面的功能,为列标题添加超链接,用户可以点击列标题对那一列进行排序. 1.修改Index方法 public ActionResult Ind ...
- 基于visual Studio2013解决C语言竞赛题之1009补数
题目 解决代码及点评 /************************************************************************/ ...
- IIS - HTTP 错误 500.21 - Internal Server Error 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
http://www.cnblogs.com/yc-755909659/p/3445278.html 首先观察,aspnet_regiis.exe文件是不是损坏的,如果是,重新下载,覆盖即可,在百度云 ...
- BZOJ 1179: [Apio2009]Atm( tarjan + 最短路 )
对于一个强连通分量, 一定是整个走或者不走, 所以tarjan缩点然后跑dijkstra. ------------------------------------------------------ ...
- 终于懂了:WM_PAINT中应该用BeginPaint与EndPaint这两个api,它们的功能正是使无效区域恢复(所以WM_PAINT里即使什么都不做,也必须写上BeginPaint与EndPaint)——Delphi里WM_PAINT消息的三个走向都做到了这一点 good
程序本来是想实现鼠标单击改变背景颜色.可是,程序运行时,为什么没有任何消息触发,背景颜色就一直不断的改变了?WM_PAINT怎么被触发的 #include <windows.h> #inc ...
- The parent project must have a packaging type of POM
在Eclipse中使用Maven添加模块时报错:The parent project must have a packaging type of POM 解决办法: 是将pom.xml 中的 < ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄的显示
上篇文章我们有了坦克,但是没有手柄,无法控制坦克. 1.这篇我们编写虚拟手柄来控制坦克.头文件大致内容如下: #define RES_PADDLE_LEFT "paddle/left.png ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示
1.先定义坦克的一些属性 class Tank : public CCSprite { public : Tank(); ~Tank(); static Tank* createTankWithTan ...
- HTML+CSS - 搜索 And 高级搜索
- URAL 1018 (金典树形DP)
连接:1018. Binary Apple Tree Time limit: 1.0 second Memory limit: 64 MB Let's imagine how apple tree l ...