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和ACCESS写聊天室(七)
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
打造超酷的PHP数据饼图效果实现代码
Nov 23 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
php调整服务器时间的方法
Apr 03 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
yii通过小物件生成view的方法
Oct 08 PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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/09/04 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
js判断节假日实例代码
2017/12/27 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python socket处理client连接过程解析
2020/03/18 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
服务口号大全
2014/06/11 职场文书
推广普通话标语
2014/06/27 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
财务工作个人总结
2015/02/27 职场文书
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android