yii2.0框架使用 beforeAction 防非法登陆的方法分析

来源:脚本之家  责任编辑:小易  

因为你Users Model的对应的表明没改,在这个Users模型类里,有这样的方法:publi

本文实例讲述了yii2.0框架使用 beforeAction 防非法登陆的方法。分享给大家供大家参考,具体如下:

需要在修改属性之前,调用'[attr]_will_change!',然后再修改属性。

beforeAction基本原理:

文件上传思路都是一样的 都是获取上传文件,判断类型,大小等等,一系列检查通过后就可以上传啦,php也

对比

1、执行顺序

yii的控制器和视图的命名区分大小写。而控制器中可以引用任意model。这些model都是在ma

init > beforeAction

1,项目目录结构分析2,Yii入口文件分析在Yii启动项目时,传递了项目主配

2、调用子函数时,两个函数都不会再次执行

关于农民工两地分区、农村空壳化、留守儿童、异地教育等问题探讨的不少。我也是一个农村人,是通过教育改变的命运。但我身边还有不少农民朋友,我想结合我自己对身边人的一个经验观察来比较切实地回答一下这个问题。第一,立足于农民工自身的解决办法:比如,我曾经遇到过几例。其中一个案例为:两口子都是山东人,在我们小区附近租了一个小门面卖菜,已经有好几年了,有两个孩子。两个孩子都在小区附近的一所小学就读(不知道其他城市如何,现在天津有很多小学都招生外来务工人员子女)。两口子在天津郊区买了两套房。这个案例算是比较成功地融入了打工城市的一个案例。还有一例是:在天津做电工的一位农民工兄弟,装修的时候请他来安装电灯,顺

3、返回值

是金子总会发光?随着良心网剧《鬼吹灯之精绝古城》的热播,老干部靳东也登上了热搜榜单,收割了一大片铁杆剧迷。靳东饰演的胡八一,更是被赞有颜值有演技。说起来靳东,也算是厚积薄发、大器晚成的典型代表了,恰好是菌菌最感冒的那一挂演员,所以今就来聊聊他。靳东被观众所熟知的时候,已经到了他人生的中年。和其他天生硬件不足后天努力的演员相比,靳东年轻的时候,也是颜值身高齐飞,底子是一点都不输的:浓眉大眼长睫毛,唇红齿白好俊俏。这么说吧,靳东年轻时候的颜值和陈坤、陆毅、黄晓明等当年哪些最红的小生们有的一拼。用现在的话来说,就是做流量担当,颜值门面也不为过的。年轻时的靳东可是在演艺圈机缘巧合的契机下,靳东的红,比

init返回false继续执行,beforeAction停止执行

偶有一台NOKlAN9,当初想买湖蓝色的,可是蓝色、酒红、碳黑的闪存都是16G,只有白色的是64G,当时拿在手里真的好鸡冻,毕竟是是苹果CEO乔帮主都欣赏的手机。而且广告作的也很有范,是当时的冰冰作的,不跟随,确实显得好有主见,本来想买苹果iPhone4和三星NOTE2,但一想自己是一个决不随波逐流的低调人士,怎么能够使用满大街都出现的“街机”呢?那也太不逼格了。花了¥3500.00大洋将N9捧在手中,仔细端详一下,心里小小happy一阵,颜值不错,是我以前用过诺基亚手机中最高的,yourareverybeautiful!在此之前,用过诺记的S60系统的6600、6681、3230、7610、

4、执行EXIT,全部停止

运动与否区别非常大,运动后短时间内从内到外看不出什么区别,甚至在运动初期很不适应,但运动时间长了,体质逐渐增强,体现在体力变好,抵抗力变强,精气神充足,脸上红润,吃得香睡得好,一年到头不上医院,甚至很少生病,身体比十多年前好了很多,运动给我带来了意想不到的健身效果,现在已65岁了血压、血糖、血脂都正常,都是运动的结果。

从框架的示例代码来看,init用于初始化数据,beforeAction用户事件的处理

代码

// 登录统一验证 public function beforeAction( $action ){ // 验证是否登录 $is_login = $this->checkLoginStatus(); if (in_array($action->getUniqueId(), $this->allowAllAction ) ) { return true; } // 是否已经登录了 没有登录的话 判断登录方式 if(!$is_login) { // 如果是ajax方式进行请求 if ( \Yii::$app->request->isAjax) { $this->renderJSON([], "未登录,请返回用户中心", -302); } else { $this->redirect( UrlService::buildWebUrl("/user/login") ); } return false; } }

其他的控制器使用的时候进行继承一下就可以了!

class UserController extends BaseWebController

防非法登陆的方法:

首先写一个公共控制器 让其他所以需要防止非法登陆的页面继承一下这个公共控制器

<?php namespace frontend\controllers; use Yii; use yii\web\Controller; class PublicController extends Controller{ public function beforeAction($action){ $cookie = \Yii::$app->request->cookies; //取出存入的cookie值 括号里写自己定义的cookie名字 $user_cookie = $cookie->get('user_id'); //判断是否有cookie if(!isset($user_cookie)){ echo "<script>alert('请先登录');location.href='?r=login/login'</script>"; } return parent::beforeAction($action); } }

然后在任意一个控制器中加入一段代码 不需要所有控制器都写 只写一个控制器里面就行

public function beforeAction($action) { if(!parent::beforeAction($action)) { return false; } }

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

如何使用YII2 构建beforeAction

int length = term.Length;

if (length == 1) //首字也为一个词的情况

rootNode.End = true;

var parentNode = rootNode;

yii beforeaction 怎么先执行父类的

首先写一个例子,在siteController中覆盖behaviors函数

public function behaviors()

{

return [

'access' => [

'class'=>AuthFilter::className(),

'only'=>['index'],

],

'access11' => [

'class'=>AuthFilter::className(),

'only'=>['index'],

],

];

}

AuthFilter的定义

class AuthFilter extends ActionFilter

{

yii框架前台怎么实现各个页面都知道他登录了

每个控制器都会继承一个controller类

在这个类里边有一个方法叫beforeAction()

顾名思义,就是在动作执行之前做些什么,你可以用这个方法判断是否有登陆

建议做法:

因为你是每个页面都要判断,那么肯定是有很多控制器要写这个登陆判断的代码

那么,你可以写一个HomeController extends Controller 在这个类里边写登陆判断的beforeAction()方法

然后需要做登陆判断的控制器都继承HomeController 就可以了

Yii 登录后 要获取用户名,怎么获取,怎判断是否已经登录

yii常用 获取登录用户信息

  1. 获取控制器名

  在控制器中获取控制器名: $this->getId();

  在视图中获取控制器名: Yii::app()->controller->id;

  2. 获取动作名

  在控制器beforeAction()回调函数中获取动作名: $name = $action->id

  在其他地方获取动作名:$this->getAction()->getId();

  任何地方 Yii::app()->controller->Action->id;

  获取当前用户id YII:app()->user->id

判断是否已经登录

  if(Yii::$app->user->isGuest){

  echo '还没登录,去登录页面';

  }else{

  echo '已经登录了,去干登录后该干的事';

  }

在Yii2里面怎么获取当前访问页面的Controller,Action

Yii::$app->controller->getRoute();==>可以直接拿到:site/index

Yii::$app->controller->id ;可以直接拿到:site

Yii::$app->controller->action->id;==>可以直接拿到:index

  • 本文相关:
  • 关于yii中模型场景的一些简单介绍
  • yii2中的场景(scenario)和验证规则(rule)详解
  • yii2中简单的场景使用介绍
  • yii 2.0中场景的使用教程
  • yii2.0框架behaviors方法使用实例分析
  • yii2.0框架行为(behavior)深入详解
  • yii2.0框架实现带分页的多条件搜索功能示例
  • yii2.0 restful api 基础配置教程详解
  • 修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
  • yii2.0框架场景的简单使用示例
  • php采集类snoopy抓取图片实例
  • laravel框架实现为 blade 模板引擎添加新文件扩展名操作示例
  • php单链表的实现代码
  • php+shell脚本操作memcached和apache status的实例分享
  • laravel框架eloquent orm修改数据操作示例
  • 深入理解php中的empty和isset函数
  • ha0k 0.3 php 网页木马修改版
  • 详解php中strlen和mb_strlen函数的区别
  • php实现qq登录实例代码
  • php将xml转数组过程详解
  • 如何使用YII2 构建beforeAction
  • yii beforeaction 怎么先执行父类的
  • yii框架前台怎么实现各个页面都知道他登录了
  • Yii 登录后 要获取用户名,怎么获取,怎判断是否已经登录
  • 在Yii2里面怎么获取当前访问页面的Controller,Action
  • PHP中使用YII框架的问题
  • yii框架中用save()方法执行update语句不成功怎么解决
  • YII框架中的文件上传功能怎么实现?求一个最简单的代码!
  • yii 控制器中每个方法名都有家action吗
  • yii框架调用接口代码一般放在哪个目录下
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved