diff options
| -rw-r--r-- | framework/pradolite.php | 27 | 
1 files changed, 22 insertions, 5 deletions
| diff --git a/framework/pradolite.php b/framework/pradolite.php index 2c12c05f..37f93ec3 100644 --- a/framework/pradolite.php +++ b/framework/pradolite.php @@ -1,7 +1,7 @@  <?php  /**   * File Name: pradolite.php - * Last Update: 2016/08/23 12:36:39 + * Last Update: 2017/01/23 17:32:51   * Generated By: buildscripts/phpbuilder/build.php   *   * This file is used in lieu of prado.php to boost PRADO application performance. @@ -3247,6 +3247,10 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar  	{  		return isset($_SERVER['SERVER_NAME'])?$_SERVER['SERVER_NAME']:null;  	} +	public function getServerSoftware() +	{ +		return isset($_SERVER['SERVER_SOFTWARE'])?$_SERVER['SERVER_SOFTWARE']:null; +	}  	public function getServerPort()  	{  		return isset($_SERVER['SERVER_PORT'])?$_SERVER['SERVER_PORT']:null; @@ -3862,12 +3866,25 @@ class THttpResponse extends TModule implements ITextWriter  	public function httpRedirect($url)  	{  		$this->ensureHeadersSent(); +						$isIIS = (stripos($this->getRequest()->getServerSoftware(), "microsoft-iis") !== false);  		if($url[0]==='/')  			$url=$this->getRequest()->getBaseUrl().$url;  		if ($this->_status >= 300 && $this->_status < 400) -						header('Location: '.str_replace('&','&',$url), true, $this->_status); -		else +		{ +						if($isIIS) +			{ +				header('HTTP/1.1 ' . $this->_status . ' ' . self::$HTTP_STATUS_CODES[ +					array_key_exists($this->_status, self::$HTTP_STATUS_CODES) +						? $this->_status +						: 302 +					]); +			} +			header('Location: '.str_replace('&','&',$url), true, $this->_status); +		} else { +			if($isIIS) +				header('HTTP/1.1 302 '.self::$HTTP_STATUS_CODES[302]);  			header('Location: '.str_replace('&','&',$url)); +		}  		if(!$this->getApplication()->getRequestCompleted())  			$this->getApplication()->onEndRequest();  		exit(); @@ -8854,7 +8871,7 @@ class TTemplate extends TApplicationComponent implements ITemplate  					else if($str[2]==='~')  						$tpl[$c++]=array($container,array(TCompositeLiteral::TYPE_EXPRESSION,"\$this->publishFilePath('$this->_contextPath/$literal')"));  					else if($str[2]==='/') -						$tpl[$c++]=array($container,array(TCompositeLiteral::TYPE_EXPRESSION,"rtrim(dirname(\$this->getApplication()->getRequest()->getApplicationUrl()), '/').'/$literal'")); +						$tpl[$c++]=array($container,array(TCompositeLiteral::TYPE_EXPRESSION,"rtrim(dirname(\$this->getApplication()->getRequest()->getApplicationUrl()), '\/').'/$literal'"));  					else if($str[2]==='[')  					{  						$literal=strtr(trim(substr($literal,0,strlen($literal)-1)),array("'"=>"\'","\\"=>"\\\\")); @@ -9071,7 +9088,7 @@ class TTemplate extends TApplicationComponent implements ITemplate  				return array(self::CONFIG_PARAMETER,trim(substr($value,3,strlen($value)-5)));  			elseif($value[2]==='/') {  				$literal = trim(substr($value,3,strlen($value)-5)); -				return array(self::CONFIG_EXPRESSION,"rtrim(dirname(\$this->getApplication()->getRequest()->getApplicationUrl()), '/').'/$literal'"); +				return array(self::CONFIG_EXPRESSION,"rtrim(dirname(\$this->getApplication()->getRequest()->getApplicationUrl()), '\/').'/$literal'");  			}  		}  		else | 
