目录


一维数组传参

新建控制器:

D:\xampp\htdocs\yii\controllers\HomeController.php

<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:36
*/ namespace app\controllers; use yii\base\Controller; class HomeController extends Controller
{
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isGet) { // 一维数组传方法:
$user = [
'username' => 'lisi1',
'age' => 26,
];
return $this->renderPartial('index', $user); //加载图层,并传参
// return $this->render('index', $data);
} }
}

新建view模板

D:\xampp\htdocs\yii\views\home\index.php

<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:43
*/ /* @var $this yii\web\View */ <h2><?=$username?></h2>

效果:


二维数组传参

新建控制器:

D:\xampp\htdocs\yii\controllers\HomeController.php

<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:36
*/ namespace app\controllers; use yii\base\Controller; class HomeController extends Controller
{
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isGet) {
$user = [
'username' => 'lisi1',
'age' => 26,
]; $article = [
'title' => 'this is test',
];
// 方法一:构造大数组(二维数组),传参
// $data = [
// 'user' => $user,
// 'article' => $article,
// ]; // return $this->renderPartial('index', $data); //加载图层,并传参 //方法二:用compact()函数构造数组(二维数组)参数,效果同方法一
return $this->renderPartial('index', compact('user', 'article')); //加载图层,并传参
// return $this->render('index', $data);
} }
}

新建view模板

D:\xampp\htdocs\yii\views\home\index.php

<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/8/23
* Time: 5:43
*/ /* @var $this yii\web\View */ $this->title = 'My Yii Application';
?>
<h2><?php echo $user['username']; ?></h2>
<h2><?= $article['title']; ?></h2> <!-- 最简的方式了,yii里没有模板引擎 -->
<h2><?php dump($user);?></h2>

打印效果


视图非法字符的过滤

新建控制器:

D:\xampp\htdocs\yii\controllers\HomeController.php

namespace app\controllers;

use yii\base\Controller;

class HomeController extends Controller
{
public function actionIndex()
{
$request = \Yii::$app->request;
if ($request->isGet) { // 一维数组传方法:
$user = [
'username' => 'lisi1 <script>alert(132);</script>', //这里模拟传出非法字符串
'age' => 26,
];
return $this->renderPartial('index', $user); //加载图层,并传参
// return $this->render('index', $data);
} }
}

新建view模板

D:\xampp\htdocs\yii\views\home\index.php

<?php
use \yii\helpers\Html;
use \yii\helpers\HtmlPurifier;
?>
<h2><?=Html::encode($username)?></h2> <!-- 转义特殊字符 -->
<!-- 打印结果: lisi1 <script>alert(132);</script> -->
<h2><?=HtmlPurifier::process($username)?></h2> <!-- 彻底的过滤特殊字符 -->
<!-- 打印结果:lisi1 -->

打印结果:

9-11.Yii2.0框架控制器分配视图并传参xss攻击脚本视图的过滤的更多相关文章

  1. 8.Yii2.0框架控制器接收get.post数据

    8.Yii2.0框架控制器接收get.post数据 一.get传参 <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * D ...

  2. yii2.0框架安装心得

    yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...

  3. yii2.0 访问控制器下的方法时出现 Object Not Found! 解决办法

    yii2.0  访问控制器下的方法时出现 Object Not Found! 时 可以查看(apache)  入口文件index.php 的同级有没有 .htaccess 文件 没有.htaccess ...

  4. 教你在Yii2.0框架中如何创建自定义小部件

    本教程将帮助您创建自己的自定义小部件在 yii framework 2.0.部件是可重用的模块和用于视图. 创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Wid ...

  5. 7.Yii2.0框架自定义全局工具函数

    功能: 新建共用方法的打印方法,可以很方便的格式化打印 一.新建helper/function.php <?php /** * Created by Haima. * Author:Haima ...

  6. DRF框架(五)——context传参,二次封装Response类,两个视图基类(APIView/GenericAPIView),视图扩展类(mixins),子类视图(工具视图),视图集(viewsets),工具视图集

    复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查 ...

  7. 5.0.1版本的react-router-dom路由传参以及路由表的配置和接收页面的接受

    //第一种 通过问号传参 //发送 this.props.history.push("/detail?id="+item.downurl) //路由表配置 <Route pa ...

  8. 12.Yii2.0框架视图模版继承与模版相互调用

    目录 模板渲染的两种方式 加载视图 index.php 和 about.php 页面 建立控制器HomeController php 新建模板 home\index.php 新建模板home\abou ...

  9. yii2.0 从控制器到视图的输出

    在controllers/SiteController.php文件中,添加 public function actionSay($message = 'Hello') { return $this-& ...

随机推荐

  1. dynomite:高可用多数据中心同步

    https://github.com/Netflix/dynomite Dynomite, inspired by Dynamo whitepaper, is a thin, distributed ...

  2. Oracle中文乱码,字符集问题处理

    1. 右键计算机,选择属性,增加环境变量 NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 2.进入注册表,依次单击HKEY_LOCAL_MACHINE --> ...

  3. iOS 面试常问之多线程

    本片围绕多线程全面展开叙述. 1.为什么要有多线程/多线程是用来干什么的? 2.多线程是什么? 3.如何创建多线程? 4.多线程在哪些情况下会使用/多线程使用场景? 5.三种多线程的优缺点? 6.线程 ...

  4. JAVA的API部分介绍

    个人理解: Object作为最大的父类,里面存在不少方法,可以在API中具体的查找.比如可以帮助查看是否相同的equals方法,不过要想看具体属性是否相同需要得重写,打印.调用对象相当于调用其tost ...

  5. 客户端rsyslog配置文件详解

    客户端rsyslog配置文件详解 最近再开发一个rsyslog的接收服务端,支持udp,tcp和tls三种协议.所以去仔细研究了一下rsyslog.conf的配置文件,下面来详细说一下. 因为我这儿重 ...

  6. jQuery知识点小结

    博主之前学习一段时间后做了点Demo,借此机会发出来分享,其实学jQuery只要简单看看文档即可,但有些细枝末节的东西文档会默认使用者是了解的,所以还是得系统学习系统训练:Talk is cheap, ...

  7. 常用API(包装类、System、Math、Arrays、大数据运算)

    常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...

  8. 【虚拟机-网络IP】使用 Powershell 设置 VNET 中的静态 IP

    本文包含以下内容 对已有虚机设置静态 Internal IP 取消对对已有虚机设置的静态 Internal IP 创建静态 Internal IP的虚机 使用中的注意点 请注意:以下操作需要下载最新版 ...

  9. uva 10328 - Coin Toss 投硬币(dp递推,大数)

    题意:抛出n次硬币(有顺序),求至少k个以上的连续正面的情况的种数. 思路:转换成求抛n个硬币,至多k-1个连续的情况种数,用所有可能出现的情况种数减去至多k-1个的情况,就得到答案了.此题涉及大数加 ...

  10. python基础教程总结7——异常

    1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有: 异常 描述 NameError 尝试访问一个没有申明的变量 ZeroDivisionError ...