elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Clase y variables disponibles en TODO el sitio.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase y variables disponibles en TODO el sitio.  (Leído 3,782 veces)
l337*


Desconectado Desconectado

Mensajes: 1.016


I've been thinking...


Ver Perfil
Clase y variables disponibles en TODO el sitio.
« en: 6 Junio 2012, 22:16 pm »

Buen dia,

Tengo una duda que me ha confundido mucho.

Quiero crear una clase, Autenticador, que sea utilizable en todo el sitio y se encargue de determinar si un usuario esta loggeado o tiene permisos para ver/modificar contenido.

Necesito que esta clase se cree al cargar misitio.com (todas las paginas) y NO se destruya al terminar de cargar el script/pagina.

Por ejemplo, alguien va a misitio.com/contenido , contenido carga su header que incluye esta clase Autenticador, la cual determina que no esta loggeado y lo redirecciona a misitio.com/login  . Cuando el usuario verifica su identidad, la misma instancia de la clase que lo mando a login, debe de guardar el valor de loggeado y mantenerlo así hasta que el usuario termine sesión o cierre el navegador.

Actualmente estoy usando el metodo singleton, pero la vida del objeto solo dura hasta que se termina de cargar la pagina. Como puedo hacer para que una instancia de objeto se mantenga viva como lo hacen las sesiones de usuario ? es decir, que el objeto y los valores de sus variables privadas permanezcan igual hasta que se destruya el objeto por "accion" del usuario?

He leído 50/50 que ES y NO ES posible hacer esto.... ????

Gracias.... espero q se me entienda :huh:

Que dicen?



En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #1 en: 6 Junio 2012, 22:19 pm »

Lo que puedes hacer es serializar tu objeto y encapsularlo en una variable de session, luego solo es cuestión de que determines el tiempo que quieres que dure esa variable de session ^^.

P.D:La verdad no entiendo muy bien para que quieres hacer eso, realmente debes comprobar la veracidad del "login" cada vez que recarga, sobre todo por seguridad.


En línea

l337*


Desconectado Desconectado

Mensajes: 1.016


I've been thinking...


Ver Perfil
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #2 en: 7 Junio 2012, 03:04 am »

Lo que puedes hacer es serializar tu objeto y encapsularlo en una variable de session, luego solo es cuestión de que determines el tiempo que quieres que dure esa variable de session ^^.

P.D:La verdad no entiendo muy bien para que quieres hacer eso, realmente debes comprobar la veracidad del "login" cada vez que recarga, sobre todo por seguridad.

cierto, tambien lei eso de meterlo serializado en sesion, pero lo que no quiero es usar sesion, por el hecho de que expira y pierde los datos, aun cuando se le extiende la vida en session.gc_maxlifetime (ya nos ha pasado).

lo quiero hacer por que no quiero depender de variables de sesion, quiero guardar los datos del usuario en el objeto. Si no hay de otra pues ni modo, lo hare con sesion hehe.

gracias
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #3 en: 7 Junio 2012, 04:55 am »

no es mas fácil pasarlo como una variable de sesión? :s
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #4 en: 7 Junio 2012, 08:32 am »

Métodos hay muchos, pero lo mejor es BD y Sessiones.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #5 en: 7 Junio 2012, 15:25 pm »

La única forma de que php pueda saber un valor independiente del script es guardando el dato en alguna parte, sin guardar el dato es imposible, el tema es donde lo guardas.

Puedes usar una cookie cifrada en rc4 pero recuerda que el valor de las cookies tienen un límite, lo otro es utilizar $_SESSION pero veo que no te resulta, lo otro es utilizar un archivo a modo de base de datos, que dentro de un txt se guarde el id de una cookie con los permisos que necesitas, algo asi como un /etc/passwd, lo otro es utilizar bases de datos (es lo recomendable) donde el usuario cuando se loguea le pones una cookie con el id de usuario y un token unico (no el pass) y verificas que ese token y ese id coincidan en la base de datos y si es asi entonces haces la carga de sus datos.

Para eso te recomiendo hacer una web modular donde haya un unico archivo de configuraciones o archivo de sistema que haga todas estas cargas antes de incluir tus módulos necesarios o simplemente utilizar MVC como codeigniter.

Si no guardas la variable es imposible, solo debes decidir donde guardarla y no te recomiendo utilizar la ip como gancho porque puede que dos o mas personas se conecten desde la misma ip como por ejemplo desde su trabajo u hogar.
En línea

l337*


Desconectado Desconectado

Mensajes: 1.016


I've been thinking...


Ver Perfil
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #6 en: 7 Junio 2012, 17:57 pm »

Gracias.

Si, veo que no tendre otra opcion mas que darle por sesion. Lo de la cookie y token me gusta, pero vendria siendo similar, ademas no garantiza que el usuario reciba la cookie... bueno, habria que codear un verificador para eso.

Muchas gracias por su ayuda.

saludz
En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #7 en: 7 Junio 2012, 18:25 pm »

La verdad, yo re recomiendo que no intentes reinventar la ruda, no busques problemas para los que ya hay solución.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #8 en: 8 Junio 2012, 14:50 pm »

Las bases de datos son mucho mas fiables que las sesiones de php, además las sesiones de php también utilizan una cookie, o si no como sabe php de quien es la sesión?, php deja una cookie llamada PHPSESSID y con ese valor php carga los datos de un archivo en el directorio temporal con el mismo nombre del valor de la cookie. Siempre cabe la posibilidad de que la sesión falle o tenga problemas con la expiración o que se borre cuando se le haga mantención al servidor y se limpie el directorio temporal, por eso para además de llevar estadisticas se utiliza una base de datos donde sea, en un txt, en mysql, en sqlite, en access, en un excel, en palitos de fosforos, donde sea pero debe guardarse aparte.
En línea

Graphixx


Desconectado Desconectado

Mensajes: 1.336


Full Stack Developer


Ver Perfil WWW
Re: Clase y variables disponibles en TODO el sitio.
« Respuesta #9 en: 8 Junio 2012, 17:11 pm »

Lo que puedes hacer es serializar tu objeto y encapsularlo en una variable de session, luego solo es cuestión de que determines el tiempo que quieres que dure esa variable de session ^^.

Tal como ya te comentaron los compañeros WarGhost y WHK, lo que mas se usa es tener esas variables en una BD, y cuando el usuario se loguee, serializar el objeto en sesion para cuando se necesite usar.
En línea

Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema de interacion entre una clase Interfaz y la clase que la llama
Java
yeah69 4 4,197 Último mensaje 21 Mayo 2010, 06:30 am
por we4rt
Div que ocupe todo el sitio
Desarrollo Web
mark182 3 3,662 Último mensaje 8 Enero 2011, 20:49 pm
por Shon
Acceder a una variable privada de una clase desde otra clase
Programación C/C++
Alvaro093 4 29,911 Último mensaje 27 Enero 2012, 09:46 am
por wachi
Acceder a variables dentro de la misma clase
Java
evans88 3 2,912 Último mensaje 11 Abril 2013, 03:18 am
por evans88
‘Drones’ hechos en México y disponibles para todo público
Noticias
wolfbcn 0 1,451 Último mensaje 28 Mayo 2013, 01:30 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines