首頁  >  文章  >  後端開發  >  Yii如何過濾不良代碼

Yii如何過濾不良代碼

*文
*文原創
2018-01-02 12:03:421653瀏覽

Yii如何過濾不良程式碼?本文主要介紹了Yii淨化器CHtmlPurifier用法,可實現過濾不良代碼的功能,涉及在控制器、模型、過濾器及視圖中的相關使用技巧,需要的朋友可以參考下,希望對大家有所幫助。

具體如下:

1. 在控制器中使用:

public function actionCreate()
{
  $model=new News;
  $purifier = new CHtmlPurifier();
  $purifier->options = array(
    'URI.AllowedSchemes'=>array(
              'http' => true,
              'https' => true,
    ),
       'HTML.Allowed'=>'p',
  );
  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'=>'p',
  );
  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'=>'p',
  );
  if(isset($_POST['news']){
    $_POST['news']['content'] = $purify($_POST['news']['content']);
  }
    $filterChain->run();
}

4. 在檢視中的使用:

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

相關推薦:

##yii2 modal彈窗之ActiveForm實作ajax表單非同步驗證

#Yii2實作QQ互聯登入

Yii2使用快取的簡單解析

以上是Yii如何過濾不良代碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn