WikiJuanan: CakeAvanzado/Sesiones

Posteado por Mariano Iglesias en la lista de correo de Cake PHP-es

http://www.h3rald.com/blog/view/42


Si vas a cambiar tanto, ¿no es más sencillo que te crees una nueva

configuración para manejar sesiones?

1. Creá un archivo app/config/session_php_nocookies.php

2. Allí dentro poné:

<?php

if (function_exists('ini_set')) {

ini_set('session.name', CAKE_SESSION_COOKIE);

ini_set('session.cookie_lifetime', $this->cookieLifeTime);

ini_set('session.cookie_path', $this->path);

ini_set('session.gc_probability', 1);

}

?>

3. En tu archivo app/config/core.php cambia esta línea:

define('CAKE_SESSION_SAVE', 'php');

por:

define('CAKE_SESSION_SAVE', 'session_php_nocookies');

De esta manera no necesitás cambiar ninguna línea de código en Cake PHP.

Lo que estoy haciendo allí es seteándole a Cake PHP que vamos a usar un

método para manejo de sessiones diferente al que Cake ofrece, y dentro del

archivo donde defino los seteos especifico seteos de sesión vía PHP.

Si en cambio quisieras usar el método de sesión usual de Cake, pero CON

transsids, creá un archivo app/config/session_cake_nookies.php con:

<?php

if (function_exists('ini_set')) {

ini_set('session.serialize_handler', 'php');

ini_set('session.use_cookies', 1);

ini_set('session.name', CAKE_SESSION_COOKIE);

ini_set('session.cookie_lifetime', $this->cookieLifeTime);

ini_set('session.cookie_path', $this->path);

ini_set('session.gc_probability', 1);

ini_set('session.auto_start', 0);

ini_set('session.save_path', TMP . 'sessions');

}

?>

Y la línea de app/config/core.php:

define('CAKE_SESSION_SAVE', 'php');

cambiala por:

define('CAKE_SESSION_SAVE', 'session_cake_nocookies');