程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Yii2針對游客、用戶防范規則和限制的解決方法分析

Yii2針對游客、用戶防范規則和限制的解決方法分析

編輯:PHP綜合

本文實例分析了Yii2針對游客、用戶防范規則和限制的解決方法。分享給大家供大家參考,具體如下:

最近在用Yii2.0做項目,其中需要實現一個功能:沒有登錄不能訪問部分頁面,即游客身份訪問限制。查了半天資料,終於找到答案。解決方法如下:

在access裡,access即訪問的意思,其中有個配置項:

'only'=>['login','about']

這是什麼意思呢,意思是僅僅在login、about兩個action內起作用,即當action 是login、about時,會進入rules裡做下一步驗證。

但是 我們想除了登錄、注冊以外其他action均不允許訪問怎麼辦呢?還有其他的配置,我們把only 改成 except,什麼意思呢,是除去什麼什麼之外的意思,就是說對除了 login、signup以外的action起作用。接下來,在:
復制代碼 代碼如下:rules=>[['action'=>['login','signup'],'allow'=>true,'roles'=>['?']]]

裡,rules就是規則,這裡邊可以寫多條,actions是指規則針對哪個action,allow指是否允許訪問,'roles'這個字段是關鍵的,這是允許訪問的角色。其中?代表游客,@代表已登錄的用戶

public function behaviors()
{
 return [
  'access' => [
   'class' => AccessControl::className(),
   'except' =>['login','signup'],
   'rules' => [
    [
     'actions' => ['login','signup'],
     'allow' => true,
     'roles' => ['?'],
    ],
   ],
  ],
  'verbs' => [
   'class' => VerbFilter::className(),
   'actions' => [
    'logout' => ['post'],
   ],
  ],
 ];
}

更多關於Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基於Yii框架的PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved