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 相关文章推荐
用函数读出数据表内容放入二维数组
Oct 09 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php数字游戏 计算24算法
Jun 10 PHP
php curl模拟post提交数据示例
Dec 31 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
PHP简单日历实现方法
Jul 20 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 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
php.ini中date.timezone设置分析
2011/07/29 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
PHP echo()函数讲解
2019/02/15 PHP
文字幻灯片
2006/06/26 Javascript
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
Python实现将文本生成二维码的方法示例
2017/07/18 Python
django实现前后台交互实例
2017/08/07 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Python异常处理操作实例详解
2018/08/28 Python
Python中turtle库的使用实例
2019/09/09 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
管理心得体会
2013/12/28 职场文书
2014年资料员工作总结
2014/11/18 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书