1

I am trying without success to read a cookie in codeigniter that has been set in the browser with Javascript.

The cookie is set in the browser as follows:

// cookieContents is an array of integers
strForCookie = JSON.stringify(cookieContents);
date.setTime(date.getTime() + (2 * 24 * 60 * 60 * 1000));	// 2 days
$.cookie('savedPlaces', strForCookie, { expires: date });

I have checked in the browser that the cookie is set properly.

On the server I have the following codeigniter code in a controller:

$this->load->helper('cookie');
$savedPlaces = $this->input->get_cookie('savedPlaces');
if ($savedPlaces == false) echo("Cookie doesn't exist!");
else echo("Cookie is: ".$savedPlaces);

The controller function is called by the following html:

<a href="/browser/saved/">Saved searches</a>

I have never used cookies before so suspect I am doing something fundamentally wrong. Can anyone illuminate me?

5
  • Are you sure you do not have an already existing cookie with the same name? It sometimes give error when you set cookies with same names. Commented Nov 23, 2014 at 21:07
  • 1
    Not sure what you mean by an already existing cookie? The browser successfully writes the cookie 'savedPlaces', shouldn't the server be able to read this cookie? How can I create a cookie with the same name? Doesn't it just overwrite the cookie rather than creating a new one with the same name? Commented Nov 23, 2014 at 21:10
  • Well i had a similar problem and in the end i found that it was conflicting with CodeIgniters default cookie setter Commented Nov 23, 2014 at 21:12
  • Can you advise what I can do to ensure this isn't happening? I am not using codeigniter to set any cookies. These are set client side. Commented Nov 23, 2014 at 21:14
  • I am not sure about it - it has been long didnt touch CodeIgnitor so thought to share how i resolved issue. Hope someone else can help you. Commented Nov 23, 2014 at 21:16

1 Answer 1

1

Add {path: '/'} option to make the cookie available to your entire site or '{path: '/browser/saved/'}' to receive the cookie only on this controller function.

$.cookie('savedPlaces', strForCookie, {expires: date, path: '/'});

By default the cookie path is set to the current page's path and will only be available to that path.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.