From 872dc79dbd8b04424520e32675a6e0dcb6ed44bc Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Wed, 25 May 2016 21:28:33 -0400 Subject: Do not execute controller if the response is already sent --- app/Core/Http/Response.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'app/Core/Http') diff --git a/app/Core/Http/Response.php b/app/Core/Http/Response.php index 1c5310d0..0f16fb65 100644 --- a/app/Core/Http/Response.php +++ b/app/Core/Http/Response.php @@ -16,6 +16,18 @@ class Response extends Base private $httpStatusCode = 200; private $httpHeaders = array(); private $httpBody = ''; + private $responseSent = false; + + /** + * Return true if the response have been sent to the user agent + * + * @access public + * @return bool + */ + public function isResponseAlreadySent() + { + return $this->responseSent; + } /** * Set HTTP status code @@ -187,6 +199,8 @@ class Response extends Base */ public function send() { + $this->responseSent = true; + if ($this->httpStatusCode !== 200) { header('Status: '.$this->httpStatusCode); header($this->request->getServerVariable('SERVER_PROTOCOL').' '.$this->httpStatusCode); -- cgit v1.2.3