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, simon_w

2.3 RC2 and cookie problem


Reply


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