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编写PDF文档生成器
Oct 09 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
PHP print类函数使用总结
Jun 25 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
php实现将Session写入数据库
Jul 26 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
PHP _construct()函数讲解
Feb 03 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
PHP使用递归按层级查找数据的方法
Nov 10 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
js取得url地址参数实例
2013/02/22 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
利用Python命令行传递实例化对象的方法
2016/11/02 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
html5实现滑块功能之type=&quot;range&quot;属性
2020/02/18 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
网上书店创业计划书
2014/01/12 职场文书
出国留学介绍信
2014/01/13 职场文书
企业车辆管理制度
2014/01/24 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS