>  기사  >  백엔드 개발  >  Yii가 잘못된 코드를 필터링하는 방법

Yii가 잘못된 코드를 필터링하는 방법

*文
*文원래의
2018-01-02 12:03:421634검색

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

.

관련 권장 사항:

yii2 모달 팝업 창 ActiveForm은 ajax 형식 비동기 검증을 구현합니다.

Yii2는 QQ 상호 연결 로그인을 구현합니다

Yii2 캐시를 사용한 간단한 분석

위 내용은 Yii가 잘못된 코드를 필터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.