How to remove validation from 1 page? ![]()
How to remove validation from 1 page? ![]()
Because CSRF validation is performed very early (in onbeginRequest), you will need to override CHttpRequest::normalizeRequest() in order fit for your needs.
next code leading to Exception: ![]()
function removeCsrfValidation(){
Yii::app()->detachEventHandler('onbeginRequest', array(Yii::app()->getComponent('request'), 'validateCsrfToken'));
}
Yii::app()->attachEventHandler('onbeginRequest', 'removeCsrfValidation');
PHP Error Description Undefined offset: 1 Source File ...frameworkcollectionsCListIterator.php(73)
custom request component:
<?php
class CCustomHttpRequest extends CHttpRequest {
public $noCsrfValidationRoutes = array();
protected function normalizeRequest()
{
parent::normalizeRequest();
$url = implode('/', array_splice(explode('/', Yii::app()->getUrlManager()->parseUrl($this)), 0, 2));
if(false!==array_search($url, $this->noCsrfValidationRoutes) && $this->enableCsrfValidation)
Yii::app()->detachEventHandler('onbeginRequest',array($this,'validateCsrfToken'));
}
}
What is the complete error call stack?
#0 ..frameworkbaseCComponent.php(507): CListIterator->current() #1 ..frameworkbaseCApplication.php(155): CWebApplication->raiseEvent() #2 ..frameworkbaseCApplication.php(132): CWebApplication->onbeginRequest() #3 ..index.php(20): CWebApplication->run()
![]()
What is your PHP version? I can't seem to reproduce the issue.
my php is 5.2.8.8
(win32)