ホームページ >バックエンド開発 >PHPチュートリアル >Yii が不良コードを除外する方法

Yii が不良コードを除外する方法

*文
*文オリジナル
2018-01-02 12:03:421684ブラウズ

Yii はどのようにして不正なコードをフィルタリングしますか?この記事では、不正なコードをフィルタリングする機能を実現できる Yii purifier 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;
  }
}

4. ビューで使用:

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

関連する推奨事項:

yii2 モーダルポップアップウィンドウ ActiveForm は Ajax フォームの非同期検証を実装します

Yii2 は QQ 相互接続ログインを実装します

キャッシュを使用した Yii2 の簡単な分析

以上がYii が不良コードを除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。