ThinkPHP之中利用commom被继承控制器控制访问每一个控制器方法都需要验证是否已经登录!
防止
<?php
namespace Home\Controller;
use Think\Controller;
class CommonController extends Controller{
public function _initialize()
{
if(empty($_COOKIE['user_login_mobile']))
{
redirect(U(,'请注册...');
}else{
$user=D('user');
$mobile=pwd_decode($_COOKIE['user_login_mobile']);
$user_msg=$user->where("mobile=$mobile")->select();
if(empty($user_msg)){
cookie('user_login_mobile',null);
redirect(U(,'请注册...');
}
}
}
}
加密解密方法:
//加密
function pwd_encode($data,$key,$expire)
{
$key=$key?$key:C('PWD_KEY');
$expire=$expire?$expire:C('AUTO_LOGIN_TIME');
return \Think\Crypt\Driver\Think::encrypt($data,$key,$expire);
}
//解密
function pwd_decode($data)
{
$key=$key?$key:C('PWD_KEY');
return \Think\Crypt\Driver\Think::decrypt($data,$key);
}
加密啊:
//登录成功>>>>>>>
//加密
$user_login_mobile=pwd_encode($data['mobile']);
//存入cookie,保存时间1个星期,一个星期内不需要再次登录
cookie('user_login_mobile',$user_login_mobile,3600*24*7);
//之后跳转首页
redirect(U('Home/Index/index'), 2,'登录成功...');
用COOKIE而不用session你知道为什么吗
ThinkPHP之中利用commom被继承控制器控制访问每一个控制器方法都需要验证是否已经登录!的更多相关文章
- 使用容器控制器控制另外两个控制器的view交换
建三个UIViewController 的子控制器,其中一个为根控制器,另外两个控制器的视图作为切换对象 AppDelegate中代码 //AppDelegate.h中代码 #import <U ...
- 玩转SSRS第九篇---匿名访问的一个间接方法
SSRS是一个功能丰富的报表平台,我们可以在这个平台上实现各种不同需求的报表应用,所以这个平台也吸引了很多.net框架之外的技术,希望能在应用中引入SSRS的报表,比如JSP或者PHP页面,这个时候系 ...
- 从一个控制器调到另一个控制器的[UIViewController _loadViewFromNibNamed:bundle:]崩溃
一,现象和分析: 1.崩溃的主要地方是[UIViewController _loadViewFromNibNamed:bundle:] ,是从 A 控制器 push 到 B 控制器后, B 控制器的v ...
- yii2在控制器中调用另一个控制器方法
Yii::$app->runAction(控制器/方法名);
- thinkphp使用模块/控制器/操作访问时出现No input file specified.解决方式
thinkphp使用 http://serverName/index.php/模块/控制器/操作 访问时,出现了 No input file specified. 的错误 解决办法: 一: 开启cgi ...
- ThinkPHP开发api时多级控制器的访问方法
发开api时,经常会用到thinkphp的多级控制器,访问方法如下: 例如:有v1和v2两个版本的接口 v1:版本控制器(类文件位置为:application/api/controller/v1/Us ...
- Yii中利用filters来控制访问
filters()方法定义在CController里,用Gii生成Controller时里面就有filters方法,代码如下: public function filters() { // retur ...
- ASP.NET Core中使用自定义验证属性控制访问权限
在应用中,有时我们需要对访问的客户端进行有效性验证,只有提供有效凭证(AccessToken)的终端应用能访问我们的受控站点(如WebAPI站点),此时我们可以通过验证属性的方法来解决. 一.publ ...
- thinkphp单入口和多入口的访问方法
完全是参考thinkphp的官网资料 现在, 基本上都是 用 单入口 的方式来做的! thinkphp可创建多入口和单入口两种模式,本文主要讲解创建方法和两者的区别. TP版本:3.1.3 前端:Ho ...
随机推荐
- Java 线程间通讯(共享变量方式)
Java线程间通讯,最常用的方式便是共享变量方式,多个线程共享一个静态变量就可以实现在线程间通讯,但是这需要注意的就是线程同步问题. 一.没考虑线程同步: package com.wyf; publi ...
- ADO.NET 实体框架 资料收集
https://msdn.microsoft.com/en-us/data/aa937723.aspx https://msdn.microsoft.com/en-us/library/bb39957 ...
- java 宠物商店代码
Pet.java interface Pet{ public String getName(); public String getColor(); public int getAge(); publ ...
- java中的static变量
java中的static变量 例如 public static int num=0: num+=1;放在函数里面 调用一次变动一次.
- checkbox与文字的间距
1. checkbox在更换了图片后, 与文字的距离有问题, 建议修改background为@null, 去除占据的位置. 2. checkbox的paddingleft可以控制图片和文字的间距.
- 测试一个域名DNS查询时间的shell脚本
脚本内容: #!/bin/bash #目标域名 site=${site:-www.ptesting.com} for((i=1;i<=10000;i++)) do #COUNTER='e ...
- 使用Spring的Property文件存储测试数据 - 添加测试数据
测试数据直接写在Property文件中,如下图: application.properties是系统自动生成,我添加了两个Property文件:HomeTestData.properties和moto ...
- SDUT 3346 数据结构实验之二叉树七:叶子问题
数据结构实验之二叉树七:叶子问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知一个按 ...
- Flex 播放视频
Flex提供视频控件(VideoDisplay Control)播放图像和声音. 视频控件只支持播放,暂停和停止功能.不提供倒退和前进功能.只支持播放FLV格式的影片. 1. 视频控件标签 对应的MX ...
- Select的深入应用(1)
在子句中使用列的位置: 使用select语句创建新表: 在子句中使用列的别名: 注意,你的 ANSI SQL 不允许你在一个WHERE子句中引用一个别名.这是因为在WHERE代码被执行时,列值还可能没 ...