zoukankan      html  css  js  c++  java
  • Yii-CHtmlPurifier- 净化器的使用(yii过滤不良代码)

    1. 在控制器中使用:

    public function actionCreate()  
    {  
        $model=new News;  
          
        $purifier = new CHtmlPurifier();  
        $purifier->options = array(  
            'URI.AllowedSchemes'=>array(  
                                'http' => true,  
                               'https' => true,  
            ),  
                  'HTML.Allowed'=>'div',  
        );  
      
        if(isset($_POST['News']))  
        {     
            $model->attributes=$_POST['News'];  
            $model->attributes['content'] = $purifier->purify($model->attributes['content']);  
            if($model->save())  
                $this->redirect(array('view','id'=>$model->id));  
        }  
    }  
    

      

    2. 在模型中的使用:

    protected function beforeSave()  
    {  
        $purifier = new CHtmlPurifier();  
        $purifier->options = array(  
            'URI.AllowedSchemes'=>array(  
                                'http' => true,  
                               'https' => true,  
            ),  
                  'HTML.Allowed'=>'div',  
        );  
      
        if(parent::beforeSave()){  
            if($this->isNewRecord){  
                $this->create_data = date('y-m-d H:m:s');  
                $this->content = $purifier->purify($this->content);  
            }  
            return true;  
        }else{  
            return false;  
        }  
    }  
    

      

    3. 在过滤器中的使用:

    public function filters()  
    {  
        return array(  
            'accessControl', // perform access control for CRUD operations  
            'postOnly + delete', // we only allow deletion via POST request  
            'purifier + create', //载入插入页面时进行些过滤操作  
        );  
    }  
      
    public function filterPurifier($filterChain){  
        $purifier = new CHtmlPurifier();  
        $purifier->options = array(  
            'URI.AllowedSchemes'=>array(  
                                'http' => true,  
                               'https' => true,  
            ),  
                  'HTML.Allowed'=>'div',  
        );  
        if(isset($_POST['news']){  
            $_POST['news']['content'] = $purify($_POST['news']['content']);  
        }  
            $filterChain->run();  
    }  
    

      

    4. 在视图中的使用:

    <?php $this->beginWidget('CHtmlPurifier'); ?>    
    ...display user-entered content here...    
    <?php $this->endWidget(); ?>  
    

      

  • 相关阅读:
    [django]Manipulator解惑
    [AJAX]Ajax.Net取Application的值问题
    IBatis.Net中为什么Output的paramMap的class设置为int就获取不到值
    [转]Python下载百度新歌100的代码
    [django]Django输出页面方式的补充
    Asp.Net的控件如何与Server交互
    [django]学习Model API的实例
    周杰伦的第七张专辑依然范特西
    立冬了,换个Skin
    InterDev调试asp页面和自定义activex all
  • 原文地址:https://www.cnblogs.com/freespider/p/4262462.html
Copyright © 2011-2022 走看看