Comment Yii filtre-t-il les mauvais codes ? Cet article présente principalement l'utilisation du purificateur Yii CHtmlPurifier, qui peut réaliser la fonction de filtrage du mauvais code et implique des compétences d'utilisation associées dans les contrôleurs, les modèles, les filtres et les vues. Les amis dans le besoin pourront s'y référer. J'espère que cela sera utile à tout le monde. .
Les détails sont les suivants :
1. Utilisé dans le contrôleur :
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. Utilisé dans le modèle :
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 . dans les filtres :
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. Utilisation dans les vues :
<?php $this->beginWidget('CHtmlPurifier'); ?> ...display user-entered content here... <?php $this->endWidget(); ?>
Recommandations associées :
Yii2 modal fenêtre contextuelle ActiveForm implémente la vérification asynchrone du formulaire Ajax
Yii2 implémente la connexion par interconnexion QQ
Analyse simple Yii2 utilisant le cache
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!