【ThinkPHP】验证码以及登陆例子
2015-11-20 16:34
579 查看
在控制器里面写
public function verify(){
import('ORG.Util.Image');//支持ThinkPHP/Extend/Library/ORG/Utill/image.class.php
Image::buildImageVerify(4,5,'png',80,25);
}
模板页面的写法
<form action="{:U('Admin/Index/logining','','')}" method="post">
用户名<input type="text" name="user" >
密码<input type="password" name="pwd">
验证码 <img id="code" src="{:U('Admin/Index/verify','','')}">
<a href="#" onclick="change_code()">看不清</a>
<input type="text" name="code">
<input type="submit" value="登陆按钮">
</form>
如何做到点击看不清就更改验证码,
可以写一个函数,js用attr修改图片的src,地址还是原来的地址后面参数了即可.
接收登陆信息的控制器的方法写
public function logining(){
if(I('code','','md5')!=$_SESSION['verify']){
//将其md5加密
$this->error('验证码错误');
}
$username = I('user');
$pwd=I('pwd', '','md5');
$user=M('user')->where(array('username'=>$username))->find();
if(!$user||$user['password']!=$pwd){
$this->error('账号或密码错误');
}
$data= array(
'Id' => $user['Id'],
'logintime' => time(),
'loginip' => get_client_ip(),
);
M('user')->where(array('Id' => $user['Id'],))->save($data);
session('username',$user['username']);
$this->redirect('Index/Index/index');
}
PS:每次进来检测session
可以利用函数_initialize();
//自动运行函数
例子:
public function _initialize(){
if($_SESSION['username']==null){
$this->redirect('Admin/Index/index');
}else {
echo "你的id是".$_SESSION['username']."<br>";
}
}
public function verify(){
import('ORG.Util.Image');//支持ThinkPHP/Extend/Library/ORG/Utill/image.class.php
Image::buildImageVerify(4,5,'png',80,25);
}
模板页面的写法
<form action="{:U('Admin/Index/logining','','')}" method="post">
用户名<input type="text" name="user" >
密码<input type="password" name="pwd">
验证码 <img id="code" src="{:U('Admin/Index/verify','','')}">
<a href="#" onclick="change_code()">看不清</a>
<input type="text" name="code">
<input type="submit" value="登陆按钮">
</form>
如何做到点击看不清就更改验证码,
可以写一个函数,js用attr修改图片的src,地址还是原来的地址后面参数了即可.
接收登陆信息的控制器的方法写
public function logining(){
if(I('code','','md5')!=$_SESSION['verify']){
//将其md5加密
$this->error('验证码错误');
}
$username = I('user');
$pwd=I('pwd', '','md5');
$user=M('user')->where(array('username'=>$username))->find();
if(!$user||$user['password']!=$pwd){
$this->error('账号或密码错误');
}
$data= array(
'Id' => $user['Id'],
'logintime' => time(),
'loginip' => get_client_ip(),
);
M('user')->where(array('Id' => $user['Id'],))->save($data);
session('username',$user['username']);
$this->redirect('Index/Index/index');
}
PS:每次进来检测session
可以利用函数_initialize();
//自动运行函数
例子:
public function _initialize(){
if($_SESSION['username']==null){
$this->redirect('Admin/Index/index');
}else {
echo "你的id是".$_SESSION['username']."<br>";
}
}
相关文章推荐
- kindeditor 批量上传 上传失败 thinkphp swfupload session
- Erlang初学:Erlang的一些特点和个人理解总结
- ThinkPHP关联模型操作实例分析
- thinkphp3.0 模板中函数的使用
- ThinkPHP采用<volist>实现三级循环代码实例
- Thinkphp模板标签if和eq的区别和比较实例分析
- 合并ThinkPHP配置文件以消除代码冗余的实现方法
- ThinkPHP中自定义目录结构的设置方法
- ThinkPHP控制器详解
- ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
- 初学Java的备忘录
- 解析thinkphp中的M()与D()方法的区别
- ThinkPHP采用模块和操作分析
- 初学JavaScript第一章第1/2页
- Thinkphp模板中使用自定义函数的方法
- linux下使用ThinkPHP需要注意大小写导致的问题
- ThinkPHP中FCKeditor编辑器的使用方法
- thinkphp的CURD和查询方式介绍
- THINKPHP支持YAML配置文件的设置方法
- Thinkphp中import的几个用法详细介绍