ThinkPHP登录功能的实现方法


Posted in PHP onAugust 20, 2014

登陆功能是PHP程序设计中常见的功能。本文ThinkPHP实例主要完成注册成功后进入首页,并告诉你是登录用户的功能。具体实现步骤如下:

第一步:在config.php文件中加上:

'USER_AUTH_KEY'=>'authId'

示例如下:

<?php
if(!defined('THINK_PATH')) exit();
return array(
// 定义数据库连接信息
'DB_TYPE'=> 'mysql',// 指定数据库是mysql
'DB_HOST'=> 'localhost',
'DB_NAME'=>'myuser', // 数据库名
'DB_USER'=>'root',
'DB_PWD'=>'', //您的数据库连接密码
'DB_PORT'=>'3306',
'DB_PREFIX'=>'think_',//数据表前缀
'USER_AUTH_KEY'=>'authId'
);
?>

第二步:在AdminAction.class.php中的insert()代码中用:

Session::set(C('USER_AUTH_KEY'),$user);

保存登录用户名到session。

完整实现代码如下:

public function insert()
{
header('Content-Type:text/html; charset=utf-8');//防止出现乱码
$user=$_POST['user'];
$this->verifyCheck();
$Pagemodel = D("user");
$vo = $Pagemodel->create(); 
if(false === $vo) die($Pagemodel->getError());
$topicid = $Pagemodel->add(); //add方法会返回新添加的记录的主键值
if($topicid)
{
//$_SESSION[C('USER_AUTH_KEY')]=$user;//不能用此句
Session::set(C('USER_AUTH_KEY'),$user);
//dump(Session::get('authId')); 
echo "<script>alert('数据库添加成功');location.href='http://127.0.0.1/zhuce/index.php/index';</script>";
}
else throw_exception("<script>alert('数据库添加失败');history.back();</script>");
}

第三步:在IndexAction.class.php文件中用if(!Session::is_set(C('USER_AUTH_KEY')))判断用户登录了没有。
Session::get(C('USER_AUTH_KEY'))是获取登录用户的名。

具体代码如下:

public function index()
{
if(!Session::is_set(C('USER_AUTH_KEY')))
//if(!isset($_SESSION['USER_AUTH_KEY'])||($_SESSION['USER_AUTH_KEY']==0))//不能用此句
{
$msg="用户没有登录"; 
}
else
{
$msg=Session::get(C('USER_AUTH_KEY')).'欢迎你回来';
}
$this->assign('msg',$msg);
$this->display(); 
}

第四步:首页显示模板,代码如下:

<body>
{$msg}<br />
这是我的首页
</body>

小结:

登录代码都是围绕写session,判断session,读session展开。
写session用:Session::set(C('USER_AUTH_KEY'),$user);
判断session用:if(!Session::is_set(C('USER_AUTH_KEY')));
读session用:Session::get(C('USER_AUTH_KEY'))

上述就是ThinkPHP登录功能的实现方法全部内容。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php miniBB中文乱码问题解决方法
Nov 25 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
php基于str_pad实现卡号不足位数自动补0的方法
Nov 12 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
php处理json格式数据经典案例总结
May 19 PHP
php中strtotime函数性能分析
Nov 20 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 #PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 #PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 #PHP
PHP面向对象程序设计之接口用法
Aug 20 #PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 #PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 #PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 #PHP
You might like
PHP中比较时间大小实例
2014/08/21 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
js实现简单进度条效果
2020/03/25 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
python列表生成器迭代器实例解析
2019/12/19 Python
python在地图上画比例的实例详解
2020/11/13 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
2014年销售经理工作总结
2014/12/01 职场文书
雾霾停课通知
2015/04/24 职场文书
运动会主持人开幕词
2016/03/04 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python