Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo

2.3 RC2 and cookie problem


Go to End
Reply


1048 Views

Avatar
toddm

Community Member, 15 Posts

9 December 2008 at 10:14am

Hi,

I'm trying to upgrade to 2.3 RC2 and have problem setting cookies.

<?php

class AbstractContent_Controller extends ContentController {
	function init() {
		parent::init();
                Cookie::set('country', 'example');
        }
}
?>

And then there are controllers that extend AbstractContent_Controller

Use to work fine in 2.2.2

Error:

Line 21 in /public/silverstripe/sapphire/core/Cookie.php
Source

12 * @param name The variable name
13 * @param value The variable value. May be an array or object if you wish.
14 * @param expiryDays The expiry time, in days. Defaults to 90.
15 */
16 static function set($name, $value, $expiryDays = 90) {
17 if(!headers_sent($file, $line)) {
18 $expiry = $expiryDays > 0 ? time()+(86400*$expiryDays) : 0;
19 setcookie($name, $value, $expiry, Director::baseURL());
20 } else {
21 if(self::$report_errors) user_error("Cookie '$name' can't be set. The site started outputting was content at line $line in $file", E_USER_WARNING);
22 }
23 $_COOKIE[$name] = $value;
24 }
25
26 /**
27 * Get a cookie variable

Trace

* Cookie 'country' can't be set. The site started outputting was content at line 1 in /public/silverstripe/mysite/code/zipconfig.php
Line 21 of Cookie.php
* Cookie::set(country,175)
Line 17 of AbstractContent.php
* AbstractContent_Controller->init()
Line 131 of LandingPage4ButtonsWithCategories.php
* LandingPage4ButtonsWithCategories_Controller->init()
Line 112 of Controller.php
* Controller->handleRequest(HTTPRequest)
Line 19 of ModelAsController.php
* ModelAsController->handleRequest(HTTPRequest)
Line 257 of Director.php
* Director::handleRequest(HTTPRequest,Session)
Line 106 of Director.php
* Director::direct(americas)
Line 111 of main.php

Any ideas?