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 全局变量范围分析
Aug 07 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 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 allow_url_include的应用和解释
2010/04/22 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
jQuery示例收集
2010/11/05 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
ES6的新特性概览
2016/03/10 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
python回调函数中使用多线程的方法
2017/12/25 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
外贸实习生自荐信范文
2013/11/24 职场文书
计算机软件个人的自荐信范文
2013/12/01 职场文书
干部现实表现材料
2014/02/13 职场文书
家长会学生演讲稿
2014/04/26 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
公司合并协议书范本
2014/09/30 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
电力安全学习心得体会
2016/01/18 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
详解TypeScript中的类型保护
2021/04/29 Javascript
MySQL 时间类型的选择
2021/06/05 MySQL
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers