Wie Yii fehlerhaften Code herausfiltert

*文
Freigeben: 2023-03-18 21:52:02
Original
1657 Leute haben es durchsucht

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));
  }
}
Nach dem Login kopieren

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;
  }
}
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

4. Verwendung in Ansichten:

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

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage