summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/pradolite.php27
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('&amp;','&',$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('&amp;','&',$url), true, $this->_status);
+ } else {
+ if($isIIS)
+ header('HTTP/1.1 302 '.self::$HTTP_STATUS_CODES[302]);
header('Location: '.str_replace('&amp;','&',$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