Heim  >  Artikel  >  Backend-Entwicklung  >  Wie Yii fehlerhaften Code herausfiltert

Wie Yii fehlerhaften Code herausfiltert

*文
*文Original
2018-01-02 12:03:421643Durchsuche

Wie filtert Yii fehlerhaften Code? In diesem Artikel wird hauptsächlich die Verwendung des Yii-Reinigers CHtmlPurifier vorgestellt, der die Funktion des Filterns von fehlerhaftem Code realisieren kann und entsprechende Kenntnisse in der Verwendung von Controllern, Modellen, Filtern und Ansichten beinhaltet. Ich hoffe, dass er für alle hilfreich sein wird .

Details sind wie folgt:

1. Verwendet im Controller:

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. Verwendet im Modell:

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;
  }
}

in Filtern:

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. Verwendung in Ansichten:

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

Verwandte Empfehlungen:

Yii2 modal Popup-Fenster ActiveForm implementiert die asynchrone Überprüfung des Ajax-Formulars

Yii2 implementiert die QQ-Verbindungsanmeldung

Yii2 einfaches Parsen mit Cache

Das obige ist der detaillierte Inhalt vonWie Yii fehlerhaften Code herausfiltert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn