Package | system.web |
---|---|
Inheritance | class CHttpRequest » CApplicationComponent » CComponent |
Implements | IApplicationComponent |
Since | 1.0 |
Version | $Id$ |
Source Code | framework/web/CHttpRequest.php |
Property | Type | Description | Defined By |
---|---|---|---|
acceptTypes | string | user browser accept types | CHttpRequest |
baseUrl | string | Returns the relative URL for the application. | CHttpRequest |
behaviors | array | the behaviors that should be attached to this component. | CApplicationComponent |
browser | array | Returns information about the capabilities of user browser. | CHttpRequest |
cookies | CCookieCollection | Returns the cookie collection. | CHttpRequest |
csrfCookie | array | the property values (in name-value pairs) used to initialize the CSRF cookie. | CHttpRequest |
csrfToken | string | Returns the random token used to perform CSRF validation. | CHttpRequest |
csrfTokenName | string | the name of the token used to prevent CSRF. | CHttpRequest |
enableCookieValidation | boolean | whether cookies should be validated to ensure they are not tampered. | CHttpRequest |
enableCsrfValidation | boolean | whether to enable CSRF (Cross-Site Request Forgery) validation. | CHttpRequest |
hostInfo | string | Returns the schema and host part of the application URL. | CHttpRequest |
isAjaxRequest | boolean | whether this is an AJAX (XMLHttpRequest) request. | CHttpRequest |
isInitialized | boolean | whether this application component has been initialized (i.e., init() is invoked. | CApplicationComponent |
isPostRequest | boolean | whether this is POST request. | CHttpRequest |
isSecureConnection | boolean | if the request is sent via secure channel (https) | CHttpRequest |
pathInfo | string | Returns the path info of the currently requested URL. | CHttpRequest |
preferredLanguage | string | the user preferred language. | CHttpRequest |
queryString | string | part of the request URL that is after the question mark | CHttpRequest |
requestType | string | request type, such as GET, POST, HEAD, PUT, DELETE. | CHttpRequest |
requestUri | string | Returns the request URI portion for the currently requested URL. | CHttpRequest |
scriptFile | string | entry script file path (processed w/ realpath()) | CHttpRequest |
scriptUrl | string | Returns the relative URL of the entry script. | CHttpRequest |
serverName | string | server name | CHttpRequest |
serverPort | integer | server port number | CHttpRequest |
url | string | part of the request URL after the host info. | CHttpRequest |
urlReferrer | string | URL referrer, null if not present | CHttpRequest |
userAgent | string | user agent | CHttpRequest |
userHost | string | user host name, null if cannot be determined | CHttpRequest |
userHostAddress | string | user IP address | CHttpRequest |
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
getAcceptTypes() | Returns user browser accept types | CHttpRequest |
getBaseUrl() | Returns the relative URL for the application. | CHttpRequest |
getBrowser() | Returns information about the capabilities of user browser. | CHttpRequest |
getCookies() | Returns the cookie collection. | CHttpRequest |
getCsrfToken() | Returns the random token used to perform CSRF validation. | CHttpRequest |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getHostInfo() | Returns the schema and host part of the application URL. | CHttpRequest |
getIsAjaxRequest() | Checks whether this is an AJAX (XMLHttpRequest) request. | CHttpRequest |
getIsInitialized() | Checks whether this application component has been initialized (i.e., init() is invoked.) | CApplicationComponent |
getIsPostRequest() | Checks whether this is POST request. | CHttpRequest |
getIsSecureConnection() | Checks if the request is sent via secure channel (https) | CHttpRequest |
getParam() | Returns the named GET or POST parameter value. | CHttpRequest |
getPathInfo() | Returns the path info of the currently requested URL. | CHttpRequest |
getPost() | Returns the named POST parameter value. | CHttpRequest |
getPreferredLanguage() | Returns the user preferred language. The returned language ID will be canonicalized using CLocale::getCanonicalID. This method returns false if the user does not have language preference. | CHttpRequest |
getQuery() | Returns the named GET parameter value. | CHttpRequest |
getQueryString() | Returns part of the request URL that is after the question mark | CHttpRequest |
getRequestType() | Returns request type, such as GET, POST, HEAD, PUT, DELETE. | CHttpRequest |
getRequestUri() | Returns the request URI portion for the currently requested URL. | CHttpRequest |
getScriptFile() | Returns entry script file path (processed w/ realpath()) | CHttpRequest |
getScriptUrl() | Returns the relative URL of the entry script. | CHttpRequest |
getServerName() | Returns server name | CHttpRequest |
getServerPort() | Returns server port number | CHttpRequest |
getUrl() | Returns part of the request URL after the host info. It consists of the following parts: | CHttpRequest |
getUrlReferrer() | Returns URL referrer, null if not present | CHttpRequest |
getUserAgent() | Returns user agent | CHttpRequest |
getUserHost() | Returns user host name, null if cannot be determined | CHttpRequest |
getUserHostAddress() | Returns user IP address | CHttpRequest |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
init() | Initializes the application component. | CHttpRequest |
raiseEvent() | Raises an event. | CComponent |
redirect() | Redirects the browser to the specified URL. | CHttpRequest |
sendFile() | Sends a file to user. | CHttpRequest |
setBaseUrl() | Sets the relative URL for the application. | CHttpRequest |
setHostInfo() | Sets the schema and host part of the application URL. | CHttpRequest |
setScriptUrl() | Sets the relative URL for the application entry script. | CHttpRequest |
stripSlashes() | Strips slashes from input data. | CHttpRequest |
validateCsrfToken() | Performs the CSRF validation. | CHttpRequest |
Method | Description | Defined By |
---|---|---|
createCsrfCookie() | Creates a cookie with a randomly generated CSRF token. | CHttpRequest |
normalizeRequest() | Normalizes the request data. | CHttpRequest |
user browser accept types
Returns the relative URL for the application. This is similar to scriptUrl except that it does not have the script file name, and the ending slashes are stripped off.
Returns information about the capabilities of user browser.
Returns the cookie collection. The result can be used like an associative array. Adding CHttpCookie objects to the collection will send the cookies to the client; and removing the objects from the collection will delete those cookies on the client.
the property values (in name-value pairs) used to initialize the CSRF cookie. Any property of CHttpCookie may be initialized. This property is effective only when enableCsrfValidation is true.
Returns the random token used to perform CSRF validation. The token will be read from cookie first. If not found, a new token will be generated.
the name of the token used to prevent CSRF. Defaults to 'YII_CSRF_TOKEN'. This property is effectively only when enableCsrfValidation is true.
whether cookies should be validated to ensure they are not tampered. Defaults to false.
whether to enable CSRF (Cross-Site Request Forgery) validation. Defaults to false. By setting this property to true, forms submitted to an Yii Web application must be originated from the same application. If not, a 400 HTTP exception will be raised. Note, this feature requires that the user client accepts cookie. You also need to use CHtml::form or CHtml::statefulForm to generate the needed HTML forms in your pages.
Returns the schema and host part of the application URL. The returned URL does not have an ending slash. By default this is determined based on the user request information. You may explicitly specify it by setting the hostInfo property.
whether this is an AJAX (XMLHttpRequest) request.
whether this is POST request.
if the request is sent via secure channel (https)
Returns the path info of the currently requested URL. This refers to the part that is after the entry script and before the question mark. The starting and ending slashes are stripped off.
the user preferred language. The returned language ID will be canonicalized using CLocale::getCanonicalID. This method returns false if the user does not have language preference.
part of the request URL that is after the question mark
request type, such as GET, POST, HEAD, PUT, DELETE.
Returns the request URI portion for the currently requested URL. This refers to the portion that is after the host info part. It includes the query string part if any. The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
entry script file path (processed w/ realpath())
Returns the relative URL of the entry script. The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
server name
server port number
part of the request URL after the host info. It consists of the following parts:
URL referrer, null if not present
user agent
user host name, null if cannot be determined
user IP address
protected CHttpCookie createCsrfCookie()
| ||
{return} | CHttpCookie | the generated cookie |
protected function createCsrfCookie()
{
$cookie=new CHttpCookie($this->csrfTokenName,sha1(uniqid(rand(),true)));
if(is_array($this->csrfCookie))
{
foreach($this->csrfCookie as $name=>$value)
$cookie->$name=$value;
}
return $cookie;
}
Creates a cookie with a randomly generated CSRF token. Initial values specified in csrfCookie will be applied to the generated cookie.
public string getAcceptTypes()
| ||
{return} | string | user browser accept types |
public function getAcceptTypes()
{
return $_SERVER['HTTP_ACCEPT'];
}
public string getBaseUrl(boolean $absolute=false)
| ||
$absolute | boolean | whether to return an absolute URL. Defaults to false, meaning returning a relative one. This parameter has been available since 1.0.2. |
{return} | string | the relative URL for the application |
public function getBaseUrl($absolute=false)
{
if($this->_baseUrl===null)
$this->_baseUrl=rtrim(dirname($this->getScriptUrl()),'\\/');
return $absolute ? $this->getHostInfo() . $this->_baseUrl : $this->_baseUrl;
}
Returns the relative URL for the application. This is similar to scriptUrl except that it does not have the script file name, and the ending slashes are stripped off.
public array getBrowser(string $userAgent=NULL)
| ||
$userAgent | string | the user agent to be analyzed. Defaults to null, meaning using the current User-Agent HTTP header information. |
{return} | array | user browser capabilities. |
public function getBrowser($userAgent=null)
{
return get_browser($userAgent,true);
}
Returns information about the capabilities of user browser.
public CCookieCollection getCookies()
| ||
{return} | CCookieCollection | the cookie collection. |
public function getCookies()
{
if($this->_cookies!==null)
return $this->_cookies;
else
return $this->_cookies=new CCookieCollection($this);
}
Returns the cookie collection. The result can be used like an associative array. Adding CHttpCookie objects to the collection will send the cookies to the client; and removing the objects from the collection will delete those cookies on the client.
public string getCsrfToken()
| ||
{return} | string | the random token for CSRF validation. |
public function getCsrfToken()
{
if($this->_csrfToken===null)
{
$cookie=$this->getCookies()->itemAt($this->csrfTokenName);
if(!$cookie || ($this->_csrfToken=$cookie->value)==null)
{
$cookie=$this->createCsrfCookie();
$this->_csrfToken=$cookie->value;
$this->getCookies()->add($cookie->name,$cookie);
}
}
return $this->_csrfToken;
}
Returns the random token used to perform CSRF validation. The token will be read from cookie first. If not found, a new token will be generated.
public string getHostInfo(string $schema='')
| ||
$schema | string | schema to use (e.g. http, https). If empty, the schema used for the current request will be used. |
{return} | string | schema and hostname part (with port number if needed) of the request URL (e.g. http://www.yiiframework.com) |
public function getHostInfo($schema='')
{
if($this->_hostInfo===null)
{
if($secure=$this->getIsSecureConnection())
$http='https';
else
$http='http';
if(isset($_SERVER['HTTP_HOST']))
$this->_hostInfo=$http.'://'.$_SERVER['HTTP_HOST'];
else
{
$this->_hostInfo=$http.'://'.$_SERVER['SERVER_NAME'];
$port=$_SERVER['SERVER_PORT'];
if(($port!=80 && !$secure) || ($port!=443 && $secure))
$this->_hostInfo.=':'.$port;
}
}
if($schema!=='' && ($pos=strpos($this->_hostInfo,':'))!==false)
return $schema.substr($this->_hostInfo,$pos);
else
return $this->_hostInfo;
}
Returns the schema and host part of the application URL. The returned URL does not have an ending slash. By default this is determined based on the user request information. You may explicitly specify it by setting the hostInfo property.
public boolean getIsAjaxRequest()
| ||
{return} | boolean | whether this is an AJAX (XMLHttpRequest) request. |
public function getIsAjaxRequest()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH'])?$_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest' : false;
}
public boolean getIsPostRequest()
| ||
{return} | boolean | whether this is POST request. |
public function getIsPostRequest()
{
return !strcasecmp($_SERVER['REQUEST_METHOD'],'POST');
}
public boolean getIsSecureConnection()
| ||
{return} | boolean | if the request is sent via secure channel (https) |
public function getIsSecureConnection()
{
return isset($_SERVER['HTTPS']) && !strcasecmp($_SERVER['HTTPS'],'on');
}
public mixed getParam(string $name, mixed $defaultValue=NULL)
| ||
$name | string | the GET parameter name |
$defaultValue | mixed | the default parameter value if the GET parameter does not exist. |
{return} | mixed | the GET parameter value |
public function getParam($name,$defaultValue=null)
{
return isset($_GET[$name]) ? $_GET[$name] : (isset($_POST[$name]) ? $_POST[$name] : $defaultValue);
}
Returns the named GET or POST parameter value. If the GET or POST parameter does not exist, the second parameter to this method will be returned. If both GET and POST contains such a named parameter, the GET parameter takes precedence.
public string getPathInfo()
| ||
{return} | string | part of the request URL that is after the entry script and before the question mark. |
public function getPathInfo()
{
if($this->_pathInfo===null)
{
$requestUri=$this->getRequestUri();
$scriptUrl=$this->getScriptUrl();
$baseUrl=$this->getBaseUrl();
if(strpos($requestUri,$scriptUrl)===0)
$pathInfo=substr($requestUri,strlen($scriptUrl));
else if($baseUrl==='' || strpos($requestUri,$baseUrl)===0)
$pathInfo=substr($requestUri,strlen($baseUrl));
else if(strpos($_SERVER['PHP_SELF'],$scriptUrl)===0)
$pathInfo=substr($_SERVER['PHP_SELF'],strlen($scriptUrl));
else
throw new CException(Yii::t('yii','CHttpRequest is unable to determine the path info of the request.'));
if(($pos=strpos($pathInfo,'?'))!==false)
$pathInfo=substr($pathInfo,0,$pos);
$this->_pathInfo=trim($pathInfo,'/');
}
return $this->_pathInfo;
}
Returns the path info of the currently requested URL. This refers to the part that is after the entry script and before the question mark. The starting and ending slashes are stripped off.
public mixed getPost(string $name, mixed $defaultValue=NULL)
| ||
$name | string | the POST parameter name |
$defaultValue | mixed | the default parameter value if the POST parameter does not exist. |
{return} | mixed | the POST parameter value |
public function getPost($name,$defaultValue=null)
{
return isset($_POST[$name]) ? $_POST[$name] : $defaultValue;
}
Returns the named POST parameter value. If the POST parameter does not exist, the second parameter to this method will be returned.
public string getPreferredLanguage()
| ||
{return} | string | the user preferred language. The returned language ID will be canonicalized using CLocale::getCanonicalID. This method returns false if the user does not have language preference. |
public function getPreferredLanguage()
{
if($this->_preferredLanguage===null)
{
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && ($n=preg_match_all('/([\w\-_]+)\s*(;\s*q\s*=\s*(\d*\.\d*))?/',$_SERVER['HTTP_ACCEPT_LANGUAGE'],$matches))>0)
{
$languages=array();
for($i=0;$i<$n;++$i)
$languages[$matches[1][$i]]=empty($matches[3][$i]) ? 1.0 : floatval($matches[3][$i]);
arsort($languages);
foreach($languages as $language=>$pref)
return $this->_preferredLanguage=CLocale::getCanonicalID($language);
}
return $this->_preferredLanguage=false;
}
return $this->_preferredLanguage;
}
public mixed getQuery(string $name, mixed $defaultValue=NULL)
| ||
$name | string | the GET parameter name |
$defaultValue | mixed | the default parameter value if the GET parameter does not exist. |
{return} | mixed | the GET parameter value |
public function getQuery($name,$defaultValue=null)
{
return isset($_GET[$name]) ? $_GET[$name] : $defaultValue;
}
Returns the named GET parameter value. If the GET parameter does not exist, the second parameter to this method will be returned.
public string getQueryString()
| ||
{return} | string | part of the request URL that is after the question mark |
public function getQueryString()
{
return isset($_SERVER['QUERY_STRING'])?$_SERVER['QUERY_STRING']:'';
}
public string getRequestType()
| ||
{return} | string | request type, such as GET, POST, HEAD, PUT, DELETE. |
public function getRequestType()
{
return strtoupper(isset($_SERVER['REQUEST_METHOD'])?$_SERVER['REQUEST_METHOD']:'GET');
}
public string getRequestUri()
| ||
{return} | string | the request URI portion for the currently requested URL. |
public function getRequestUri()
{
if($this->_requestUri===null)
{
if(isset($_SERVER['HTTP_X_REWRITE_URL'])) // IIS
$this->_requestUri=$_SERVER['HTTP_X_REWRITE_URL'];
else if(isset($_SERVER['REQUEST_URI']))
{
$this->_requestUri=$_SERVER['REQUEST_URI'];
if(strpos($this->_requestUri,$_SERVER['HTTP_HOST'])!==false)
$this->_requestUri=preg_replace('/^\w+:\/\/[^\/]+/','',$this->_requestUri);
}
else if(isset($_SERVER['ORIG_PATH_INFO'])) // IIS 5.0 CGI
{
$this->_requestUri=$_SERVER['ORIG_PATH_INFO'];
if(!empty($_SERVER['QUERY_STRING']))
$this->_requestUri.='?'.$_SERVER['QUERY_STRING'];
}
else
throw new CException(Yii::t('yii','CHttpRequest is unable to determine the request URI.'));
}
return $this->_requestUri;
}
Returns the request URI portion for the currently requested URL. This refers to the portion that is after the host info part. It includes the query string part if any. The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
public string getScriptFile()
| ||
{return} | string | entry script file path (processed w/ realpath()) |
public function getScriptFile()
{
if($this->_scriptFile!==null)
return $this->_scriptFile;
else
return $this->_scriptFile=realpath($_SERVER['SCRIPT_FILENAME']);
}
public string getScriptUrl()
| ||
{return} | string | the relative URL of the entry script. |
public function getScriptUrl()
{
if($this->_scriptUrl===null)
{
$scriptName=basename($_SERVER['SCRIPT_FILENAME']);
if(basename($_SERVER['SCRIPT_NAME'])===$scriptName)
$this->_scriptUrl=$_SERVER['SCRIPT_NAME'];
else if(basename($_SERVER['PHP_SELF'])===$scriptName)
$this->_scriptUrl=$_SERVER['PHP_SELF'];
else if(isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME'])===$scriptName)
$this->_scriptUrl=$_SERVER['ORIG_SCRIPT_NAME'];
else if(($pos=strpos($_SERVER['PHP_SELF'],'/'.$scriptName))!==false)
$this->_scriptUrl=substr($_SERVER['SCRIPT_NAME'],0,$pos).'/'.$scriptName;
else if(isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT'])===0)
$this->_scriptUrl=str_replace('\\','/',str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME']));
else
throw new CException(Yii::t('yii','CHttpRequest is unable to determine the entry script URL.'));
}
return $this->_scriptUrl;
}
Returns the relative URL of the entry script. The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
public string getServerName()
| ||
{return} | string | server name |
public function getServerName()
{
return $_SERVER['SERVER_NAME'];
}
public integer getServerPort()
| ||
{return} | integer | server port number |
public function getServerPort()
{
return $_SERVER['SERVER_PORT'];
}
public string getUrl()
| ||
{return} | string | part of the request URL after the host info. It consists of the following parts: |
public function getUrl()
{
if($this->_url!==null)
return $this->_url;
else
{
if(isset($_SERVER['REQUEST_URI']))
$this->_url=$_SERVER['REQUEST_URI'];
else
{
$this->_url=$this->getScriptUrl();
if(($pathInfo=$this->getPathInfo())!=='')
$this->_url.='/'.$pathInfo;
if(($queryString=$this->getQueryString())!=='')
$this->_url.='?'.$queryString;
}
return $this->_url;
}
}
public string getUrlReferrer()
| ||
{return} | string | URL referrer, null if not present |
public function getUrlReferrer()
{
return isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:null;
}
public string getUserAgent()
| ||
{return} | string | user agent |
public function getUserAgent()
{
return $_SERVER['HTTP_USER_AGENT'];
}
public string getUserHost()
| ||
{return} | string | user host name, null if cannot be determined |
public function getUserHost()
{
return isset($_SERVER['REMOTE_HOST'])?$_SERVER['REMOTE_HOST']:null;
}
public string getUserHostAddress()
| ||
{return} | string | user IP address |
public function getUserHostAddress()
{
return isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'127.0.0.1';
}
public void init()
|
public function init()
{
parent::init();
$this->normalizeRequest();
}
Initializes the application component. This method overrides the parent implementation by preprocessing the user request data.
protected void normalizeRequest()
|
protected function normalizeRequest()
{
// normalize request
if(get_magic_quotes_gpc())
{
if(isset($_GET))
$_GET=$this->stripSlashes($_GET);
if(isset($_POST))
$_POST=$this->stripSlashes($_POST);
if(isset($_REQUEST))
$_REQUEST=$this->stripSlashes($_REQUEST);
if(isset($_COOKIE))
$_COOKIE=$this->stripSlashes($_COOKIE);
}
if($this->enableCsrfValidation)
Yii::app()->attachEventHandler('onBeginRequest',array($this,'validateCsrfToken'));
}
Normalizes the request data. This method strips off slashes in request data if get_magic_quotes_gpc() returns true. It also performs CSRF validation if enableCsrfValidation is true.
public void redirect(string $url, boolean $terminate=true, integer $statusCode=302)
| ||
$url | string | URL to be redirected to. If the URL is a relative one, the base URL of the application will be inserted at the beginning. |
$terminate | boolean | whether to terminate the current application |
$statusCode | integer | the HTTP status code. Defaults to 302. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for details about HTTP status code. This parameter has been available since version 1.0.4. |
public function redirect($url,$terminate=true,$statusCode=302)
{
if(strpos($url,'/')===0)
$url=$this->getHostInfo().$url;
header('Location: '.$url, true, $statusCode);
if($terminate)
Yii::app()->end();
}
Redirects the browser to the specified URL.
public void sendFile(string $fileName, string $content, string $mimeType=NULL, boolean $terminate=true)
| ||
$fileName | string | file name |
$content | string | content to be set. |
$mimeType | string | mime type of the content. If null, it will be guessed automatically based on the given file name. |
$terminate | boolean | whether to terminate the current application after calling this method |
public function sendFile($fileName,$content,$mimeType=null,$terminate=true)
{
if($mimeType===null)
{
if(($mimeType=CFileHelper::getMimeTypeByExtension($fileName))===null)
$mimeType='text/plain';
}
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-type: $mimeType");
if(ini_get("output_handler")=='')
header('Content-Length: '.strlen($content));
header("Content-Disposition: attachment; filename=\"$fileName\"");
header('Content-Transfer-Encoding: binary');
echo $content;
if($terminate)
Yii::app()->end();
}
Sends a file to user.
public void setBaseUrl(string $value)
| ||
$value | string | the relative URL for the application |
public function setBaseUrl($value)
{
$this->_baseUrl=$value;
}
Sets the relative URL for the application. By default the URL is determined based on the entry script URL. This setter is provided in case you want to change this behavior.
public void setHostInfo(string $value)
| ||
$value | string | the schema and host part of the application URL. |
public function setHostInfo($value)
{
$this->_hostInfo=rtrim($value,'/');
}
Sets the schema and host part of the application URL. This setter is provided in case the schema and hostname cannot be determined on certain Web servers.
public void setScriptUrl(string $value)
| ||
$value | string | the relative URL for the application entry script. |
public function setScriptUrl($value)
{
$this->_scriptUrl='/'.trim($value,'/');
}
Sets the relative URL for the application entry script. This setter is provided in case the entry script URL cannot be determined on certain Web servers.
public mixed stripSlashes(mixed &$data)
| ||
$data | mixed | input data to be processed |
{return} | mixed | processed data |
public function stripSlashes(&$data)
{
return is_array($data)?array_map(array($this,'stripSlashes'),$data):stripslashes($data);
}
Strips slashes from input data. This method is applied when magic quotes is enabled.
public void validateCsrfToken(CEvent $event)
| ||
$event | CEvent | event parameter |
public function validateCsrfToken($event)
{
if($this->getIsPostRequest())
{
// only validate POST requests
$cookies=$this->getCookies();
if($cookies->contains($this->csrfTokenName) && isset($_POST[$this->csrfTokenName]))
{
$tokenFromCookie=$cookies->itemAt($this->csrfTokenName)->value;
$tokenFromPost=$_POST[$this->csrfTokenName];
$valid=$tokenFromCookie===$tokenFromPost;
}
else
$valid=false;
if(!$valid)
throw new CHttpException(400,Yii::t('yii','The CSRF token could not be verified.'));
}
}
Performs the CSRF validation. This is the event handler responding to CApplication::onBeginRequest. The default implementation will compare the CSRF token obtained from a cookie and from a POST field. If they are different, a CSRF attack is detected.
Signup or Login in order to comment.