diff options
author | xue <> | 2006-06-19 12:37:59 +0000 |
---|---|---|
committer | xue <> | 2006-06-19 12:37:59 +0000 |
commit | cb1021da880b5200fdfe87e43d96a86de811e482 (patch) | |
tree | 9e3166bcaa641910dd1d30a99e44004c3711ffc4 /framework | |
parent | 551cbab5c5921acfa23b1abe6dbac40808cc5508 (diff) |
Fixed #244, #245.
Diffstat (limited to 'framework')
-rw-r--r-- | framework/Web/THttpRequest.php | 18 | ||||
-rw-r--r-- | framework/Web/THttpResponse.php | 5 |
2 files changed, 21 insertions, 2 deletions
diff --git a/framework/Web/THttpRequest.php b/framework/Web/THttpRequest.php index 4e04ecca..b908db53 100644 --- a/framework/Web/THttpRequest.php +++ b/framework/Web/THttpRequest.php @@ -259,7 +259,7 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar */
public function getIsSecureConnection()
{
- return !empty($_SERVER['HTTPS']);
+ return isset($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'],'off');
}
/**
@@ -287,6 +287,14 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar }
/**
+ * @return string schema and hostname of the requested URL
+ */
+ public function getBaseUrl()
+ {
+ return ($this->getIsSecureConnection() ? "https://" : "http://") . $_SERVER ['HTTP_HOST'];
+ }
+
+ /**
* @return string entry script URL (w/o host part)
*/
public function getApplicationUrl()
@@ -295,6 +303,14 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar }
/**
+ * @return string entry script URL (w/ host part)
+ */
+ public function getAbsoluteApplicationUrl()
+ {
+ return $this->getBaseUrl() . $this->getApplicationUrl();
+ }
+
+ /**
* @return string application entry script file path (processed w/ realpath())
*/
public function getApplicationFilePath()
diff --git a/framework/Web/THttpResponse.php b/framework/Web/THttpResponse.php index 5a3ff99d..f455f48d 100644 --- a/framework/Web/THttpResponse.php +++ b/framework/Web/THttpResponse.php @@ -274,12 +274,15 @@ class THttpResponse extends TModule implements ITextWriter /**
* Redirects the browser to the specified URL.
* The current application will be terminated after this method is invoked.
- * @param string URL to be redirected to
+ * @param string URL to be redirected to. If the URL is a relative one, the base URL of
+ * the current request will be inserted at the beginning.
*/
public function redirect($url)
{
if(!$this->getApplication()->getRequestCompleted())
$this->getApplication()->onEndRequest();
+ if($url[0]==='/')
+ $url=$this->getRequest()->getBaseUrl().$url;
header('Location:'.$url);
exit();
}
|