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 相关文章推荐
利用 window_onload 实现select默认选择
Oct 09 PHP
php split汉字
Jun 05 PHP
php操作sqlserver关于时间日期读取的小小见解
Nov 29 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
php mysql 判断update之后是否更新了的方法
Jan 10 PHP
PHP中数组定义的几种方法
Sep 01 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
php可变长参数处理函数详解
Feb 22 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 strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
js静态作用域的功能。
2006/12/25 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
Promise扫盲贴
2019/06/24 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
Python标准库与第三方库详解
2014/07/22 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python输入多行字符串的方法总结
2019/07/02 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
应届电子商务毕业自荐书范文
2014/02/11 职场文书
新年爱情寄语
2014/04/08 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript