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缓存技术介绍
Nov 25 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 PHP
php中str_pad()函数用法分析
Mar 28 PHP
Laravel5中Cookie的使用详解
May 03 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 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
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
浅谈php调用python文件
2019/03/29 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
利用Python实现网络测试的脚本分享
2017/05/26 Python
python利用微信公众号实现报警功能
2018/06/10 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
工程技术员岗位职责
2014/03/02 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
求职自我推荐信
2014/06/25 职场文书
推广普通话标语
2014/06/27 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
高中班主任寄语
2019/06/21 职场文书
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL