summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY1
-rw-r--r--framework/Web/THttpRequest.php8
-rw-r--r--framework/Web/THttpResponse.php8
3 files changed, 16 insertions, 1 deletions
diff --git a/HISTORY b/HISTORY
index b6441fad..38f6c115 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,7 @@
Version 3.1.3 To Be Released
============================
BUG: Ticket#836 - TRatingList downgrade (Christophe)
+BUG: Ticket#841 - Strange output from THttpResponse (Christophe)
BUG: Ticket#843 - TDataList alternatinItem issue after changes in rev 2227 (Christophe)
BUG: Ticket#849 - TDatePicker selecting current date problem (Christophe)
diff --git a/framework/Web/THttpRequest.php b/framework/Web/THttpRequest.php
index aec71262..23ab26ec 100644
--- a/framework/Web/THttpRequest.php
+++ b/framework/Web/THttpRequest.php
@@ -345,6 +345,14 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
}
/**
+ * @return string the requested http procolol. Blank string if not defined.
+ */
+ public function getHttpProtocolVersion ()
+ {
+ return isset($_SERVER['SERVER_PROTOCOL'])?$_SERVER['SERVER_PROTOCOL']:'';
+ }
+
+ /**
* @return string part of that request URL after the host info (including pathinfo and query string)
*/
public function getRequestUri()
diff --git a/framework/Web/THttpResponse.php b/framework/Web/THttpResponse.php
index af751828..64c9eaba 100644
--- a/framework/Web/THttpResponse.php
+++ b/framework/Web/THttpResponse.php
@@ -257,8 +257,11 @@ class THttpResponse extends TModule implements ITextWriter
/**
* Set the HTTP status code for the response.
+ * The code and its reason will be sent to client using the currently requested http protocol version (see {@link THttpRequest::getHttpProtocolVersion})
+ * Keep in mind that HTTP/1.0 clients might not understand all status codes from HTTP/1.1
*
* @param integer HTTP status code
+ * @param string HTTP status reason, defaults to standard HTTP reasons
*/
public function setStatusCode($status, $reason=null)
{
@@ -432,7 +435,10 @@ class THttpResponse extends TModule implements ITextWriter
*/
protected function sendHttpHeader ()
{
- header("HTTP/1.1 {$this->_status} {$this->_reason}", true, $this->_status);
+ if (($version=$this->getRequest()->getHttpProtocolVersion())==='')
+ header (' ', true, $this->_status);
+ else
+ header($version.' '.$this->_status.' '.$this->_reason, true, $this->_status);
}
/**