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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

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

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo

2.3 RC2 and cookie problem


Go to End


1712 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?