Autor
|
Tema: Clase y variables disponibles en TODO el sitio. (Leído 4,090 veces)
|
l337*
Desconectado
Mensajes: 1.016
I've been thinking...
|
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 Que dicen?
|
|
|
En línea
|
|
|
|
WarGhost
I love basket
Desconectado
Mensajes: 1.070
|
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
Mensajes: 1.016
I've been thinking...
|
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
|
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
Mensajes: 1.070
|
Métodos hay muchos, pero lo mejor es BD y Sessiones.
|
|
|
En línea
|
|
|
|
WHK
|
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
Mensajes: 1.016
I've been thinking...
|
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
Mensajes: 1.070
|
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
|
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
Mensajes: 1.336
Full Stack Developer
|
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
|
|
|
|
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,581
|
21 Mayo 2010, 06:30 am
por we4rt
|
|
|
Div que ocupe todo el sitio
Desarrollo Web
|
mark182
|
3
|
3,915
|
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
|
30,514
|
27 Enero 2012, 09:46 am
por wachi
|
|
|
Acceder a variables dentro de la misma clase
Java
|
evans88
|
3
|
3,137
|
11 Abril 2013, 03:18 am
por evans88
|
|
|
‘Drones’ hechos en México y disponibles para todo público
Noticias
|
wolfbcn
|
0
|
1,757
|
28 Mayo 2013, 01:30 am
por wolfbcn
|
|