tags:

views:

1281

answers:

2

Hi,

I have problem with cakephp's Session->write method.

If I set a value like $_SESSION['..'] i'm able to read it back. But if I use the write method it's not working.

My problem is same as here: http://www.nabble.com/Session-problem-td16684956.html

The same code was working in windows but it's not working after I moved to linux.

Any permission problem would be the reason? (but i have given rw permission fully for the cake app directory).

code sample: in the link: http://www.nabble.com/Session-problem-td16684956.html

  • Configure::write('Session.save', 'php');
  • Configure::write('Session.cookie', 'CAKEPHP');
  • Configure::write('Session.start', true);
  • Configure::write('Session.checkAgent', false);
  • Configure::write('Security.level', 'medium');

cake version: 1.2.3.8166

A: 

Some steps to ensure it's not you:

  • clear the cache in your /app/tmp
  • check and recheck that your /app/tmp is world-writable recursively (that means drwxrwxrwx for all folders inside)
  • use Firebug to check your session cookie, maybe something has gone wrong with it

Last but not least, try to move your session persistence to your database (see: Session.save), just to test things out that way, you never know what you'll find.

Hopefully you'll find something if you try all these.

dr Hannibal Lecter
A: 

Prabu,

While I suspect the Configure::write() call will sometimes correctly set the session information (at least it looks like it might work), the Cake convention (aka the CakeWay) is to use the Session helper. I believe it is included by default in all Cake controllers; if not, you can always declare your controller as such:

class UsersController extends AppController {
 ...
 var $helpers = array( 'Session', ... )
 ...
}

Then, when you want to write info to the session, just call:

$this->Session->write( 'checkAgent', false );

To read back values, use:

$this->Session->read( 'checkAgent');

For more information on the Session helper, check out the CakeBook @ http://book.cakephp.org/view/484/Session

Travis Leleu
You are confusing Session component and Session helper: in the controllers the Session component is used whereas in the views the Session helper is used. Both, Session component and Session helper, are automatically loaded, so it is not necessary to define them.
dhofstet