2011-12-23 24 views
6

Tengo un sitio web CakePHP con su propio sistema de inicio de sesión utilizando el componente Auth. Me gustaría saber si lo siguiente es posible:Access cakephp session (auth) from outside cakephp

Un usuario ha iniciado sesión y está navegando por el sitio web. En un punto, puede hacer clic en un enlace que abre un archivo php externo. Con externo quiero decir que podría estar en otra carpeta del mismo servidor, pero fuera de las carpetas de la aplicación CakePHP.

Lo "complicado" (para mí) es mostrar solo los contenidos de ese archivo php si el usuario está conectado (para evitar que alguien sin una cuenta acceda a esos contenidos). No puedo usar Auth allí porque estoy "fuera" de Cake ... No sé si quizás usando $ _SESSION, pero no sé cómo ...

¿Esto es posible? Y sí, el php tiene que estar fuera del sistema de carpeta de aplicaciones de CakePHP.

¿Alguna idea?

+2

var_dump o print_r son funciones de php muy útiles. Úselos con $ _SESSION y podrá ver todo lo que CakePHP hace con él. En realidad es interesante de ver. – Vigrond

+0

Hace un tiempo tuve la misma pregunta: http://stackoverflow.com/questions/6988156/accessing-cakephp-session-variable-from-a-php-script – AlexBrand

Respuesta

7

Sí, puede acceder a la SESIÓN cakephp fuera de la carpeta cakephp. tratar esta sesión variable de

$_SESSION['Auth'] 

si es que existe a continuación, comprobar para el usuario aquí

$_SESSION['Auth']['User'] 
+0

gracias por su respuesta! Entonces, básicamente, solo necesito verificar si '$ _SESSION ['Auth'] ['User']' existe ¿verdad? Por ejemplo, con cake, usualmente solo hago '$ this-> Session-> check ('Auth.User')' para saber si un usuario está conectado ... ¿sería eso el equivalente? – Albert

+0

sí, está bien. –

+0

ok genial! ¡muchas gracias! – Albert

8

Voy a añadir también es necesario para establecer el nombre de sesión para "CakePHP" usando

session_name('CAKEPHP') 

solo antes de su aplicación externa session_start() de lo contrario no podría aplicar la solución sugerida Kashif Khan :)

Cheers,

+0

¡Gracias! mucho hombre Estaba buscando esta pieza de código. –

1

Esto no está funcionando en Cakephp3. Después de llamar al

session_name("CAKEPHP"); 
session_start(); 

La sesión de solicitud está por vencer.