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

958 Views

Avatar
toddm

9 December 2008 at 10:14am Community Member, 15 Posts

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?