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 相关文章推荐
WordPress判断用户是否登录的代码
Mar 17 PHP
php适配器模式介绍
Aug 14 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
深入解析php中的foreach问题
Jun 30 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
关于laravel 日志写入失败问题汇总
Oct 17 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
PHP面向对象概念
2011/11/06 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
修改vue+webpack run build的路径方法
2018/09/01 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Python中转换角度为弧度的radians()方法
2015/05/18 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python读写json文件的简单实现
2017/04/11 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
python实现词法分析器
2019/01/31 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
Django中使用Celery的方法步骤
2020/12/07 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
软件工程师面试题
2012/06/25 面试题
厨房工作人员岗位职责
2013/11/15 职场文书
最受欢迎的自我评价
2013/12/22 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
高三励志标语
2014/06/05 职场文书
暑期培训班招生方案
2014/08/26 职场文书
2015年推普周活动方案
2015/05/06 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
教师岗位说明书
2015/09/30 职场文书
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers