邓_ ThinkPhp框架
登陆功能是PHP程序设计中常见的功能。本文ThinkPHP实例主要完成注册成功后进入首页,并告诉你是登录用户的功能。具体实现步骤如下:
第一步:在config.php文件中加上:
|
1
|
'USER_AUTH_KEY'=>'authId' |
示例如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?phpif(!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()代码中用:
|
1
|
Session::set(C('USER_AUTH_KEY'),$user); |
保存登录用户名到session。
完整实现代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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')); }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'))是获取登录用户的名。
具体代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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(); } |
第四步:首页显示模板,代码如下:
|
1
2
3
4
|
<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登录功能的实现方法全部内容。
--------------------------------------------------------------------------------------------------Deng
邓_ ThinkPhp框架的更多相关文章
- 攻城记:Thinkphp框架的项目规划总结和踩坑经验
一.项目模块规划 1.项目分为PC端.移动端.和PC管理端,分为对应目录为 /Application/Home,/Application/Mobile,/Application/Admin: 对应入口 ...
- 使用Thinkphp框架开发移动端接口
本文给大家分享的是使用thinkphp框架开发移动端接口的2种方法,一种是开发API,另外一种是实现移动端访问自动切换移动主题模板,从而实现伪app访问,下面我们就来详细看下如何实现吧. 方案一:给 ...
- ThinkPHP框架视图详细介绍 View 视图--模板(九)
原文:ThinkPHP框架视图详细介绍 View 视图--模板(九) 视图也是ThinkPHP使用的核心部分: 一.模板的使用 a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和 ...
- thinkphp框架的相关总结
参考链接地址:http://gongwen.sinaapp.com/article-205.html 1. 模板中不能使用的标签 {$content} {$i} 2. If标签 如: <if c ...
- 制作类似ThinkPHP框架中的PATHINFO模式功能(二)
距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.ht ...
- CasPHP 便捷简单的 ThinkPHP 框架
便捷简单的 PHP 框架,自适应后台管理界面 Convenient and succinct(便捷的 简明的;言简意赅的) 核心框架:framework: 5.1.28助手函数:think-helpe ...
- ThinkPHP框架的一些基础应用
这是俺滴师傅给俺传授了的知识,特在此分享. TP框架,做PHP开发的都应该有所耳闻.下面,我们就来说说入口文件的生成: 创建新项目时,首先,在目录文件下创建一个新的文件夹.然后将Thinkphp框架文 ...
- 关于在BAE上部署ThinkPHP框架的问题
现在有点小兴奋,因为在在BAE上部署ThinkPHP框架的问题快折腾一天了,午觉都没睡,不过没白整总算有点结果.不扯淡了,直入正题吧. 之前熟悉ThinkPHP框架,想在BAE上用ThinkPHP做点 ...
- 番外一:关于thinkphp框架下的文件导入路径问题
总的来说,要使在thinkphp框架下面HTML导入的图片.css文件和js文件有效,只有两种方法:(1)使用绝对路径:(2)在项目目录下创建新目录Public,把所有的img文件夹.js文件夹和cs ...
随机推荐
- SQL Server Service Broker创建单个数据库会话
概述 SQL Server Service Broker 用来创建用于交换消息的会话.消息在目标和发起方这两个端点之间进行交换.消息用于传输数据和触发消息收到时的处理过程.目标和发起方既可以在同一数据 ...
- Go从三个站点中返回响应最快的
利用协程可以轻松实现 package main import ( "fmt" "github.com/imroc/req" ) func mirroredQue ...
- Linux Select之坑
最近在写一个demo程序,调用select()来监听socket状态,流程如下: r_set 初始化 timeout 初始化3秒超时 loop{ select(ntfs, &r_set, nu ...
- 微信小程序<web-view>嵌入网页后,小程序如何和网页交互传值?
最近开发一个项目由于小程序某些组件的限制,然后想到嵌入网页,但是遇到一个问题:网页端调取数据的时候需要 小程序传递多个参数值才能用,如何传值呢? 最初我想到是<web-view src=&quo ...
- ztree使用font-awesome字体的问题,
ztree要使用自定义图标字体的时候 需要自己做皮肤cssstyle,官方有文档,但是有些时候我们值需要简单的设置图标字体class样式 是没办法使用的,我们需要对两个函数进行修改. 下面是两个函数请 ...
- windows错误处理
在调用windows API时函数会首先对我们传入的参数进行校验,然后执行,如果出现什么情况导致函数执行出错,有的函数可以通过返回值来判断函数是否出错,比如对于返回句柄的函数如果返回NULL 或者IN ...
- Qt5.3.1 OpenCV2.4.9 开发环境配置
首先是将我们需要的三个软件安装:分别是OpenCV2.4.9.QT5.3.1 .Cmake3.0.2 一定要使用Cmake3.0.2编译OpenCV2.4.9 其他版本的不一定能编译成功!!!! A. ...
- Django源码分析之程序执行入口分析
一般我们开启一个django项目,最简单的方法是进入project 目录,这时目录结构是这样的 然后我们执行python manage.py runserver,程序就开始执行了. 那django是如 ...
- weui中的日期选择控件关于时间段的设置!
近日用到了日期控件,但是需要把时和分去掉,功能上是做一个预约的功能,所以只需要在年月日后面提供时间段的选择. BUG在于如果第一次点开弹框而没做任何操作,然后点了其他任意区域则弹框关闭,甚至你的8:0 ...
- HUST 1585 排队
1585 - 排队 时间限制:1秒 内存限制:128兆 351 次提交 179 次通过 题目描述 BG站在一个有n个人的队伍中,但他并不知道他处于队伍中的哪个位置,他向前向后观察,只能断定他的前方有至 ...