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的历史和优缺点
Oct 09 PHP
PHP 和 MySQL 基础教程(三)
Oct 09 PHP
PHP学习之PHP运算符
Oct 09 PHP
让你的网站首页自动选择语言转跳
Dec 06 PHP
php中文字符截取防乱码
Mar 28 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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
域名查询代码公布
2006/10/09 PHP
php开发环境配置记录
2011/01/14 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
PHP时间类完整代码实例
2021/02/26 PHP
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
微信小程序日期选择器实例代码
2018/07/18 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
python中xrange用法分析
2015/04/15 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
python 重定向获取真实url的方法
2018/05/11 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
python自动识别文本编码格式代码
2019/12/26 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
一封普通求职者的求职信
2013/11/20 职场文书
大学生入党思想汇报
2014/01/14 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
高中同学会致辞
2015/08/01 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
springboot用户数据修改的详细实现
2022/04/06 Java/Android
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL
Android 中的类文件和类加载器详情
2022/06/05 Java/Android