Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: jalbtercero en 22 Mayo 2016, 00:31 am



Título: Usuario Php
Publicado por: jalbtercero en 22 Mayo 2016, 00:31 am
Cuando un usuario se loguea en mi pagina , guardo su nombre en una variable, para que pueda ir accediendo a poaginas, pero al rato se tiene que volver a loguear como podri evitar esto


Título: Re: Usuario Php
Publicado por: engel lex en 22 Mayo 2016, 00:33 am
cambia la duración de las cookies


Título: Re: Usuario Php
Publicado por: AlbertoBSD en 22 Mayo 2016, 01:11 am
http://www.w3schools.com/php/func_http_setcookie.asp


Título: Re: Usuario Php
Publicado por: gAb1 en 23 Mayo 2016, 02:34 am
żComo estás iniciando la sesión? Un simple session_start() con los valores default seguro...

En adición a setcookie() (http://php.net/manual/en/function.setcookie.php) crea una función que configure la sesión como quieras y tambien hay que renovarla cada 30 min (es lo recomendado):

En el siguiente orden:

- Crear tus parametros de cookie (nombre, dominio, etc) y obtenen los actuales con (session_get_cookie_params() (http://php.net/manual/en/function.session-get-cookie-params.php)) para usar los que quieras dejar por defecto.
- Cambiar los parametros de la cookie actuales (session_set_cookie_params() (http://php.net/manual/en/function.session-set-cookie-params.php)) pasandole tus parametros y los que quieras dejar por defecto como argumentos (en el orden que indica la documentación).
- Darle nombre a la sesión (session_name() (http://php.net/manual/en/function.session-name.php)).
- Empezar sesión (session_start() (http://php.net/manual/en/function.session-start.php)).
- Crear una variable de sesión asignandole time() para saber cuando fue creada, pero comprobando primero que no exista ya.
- Comprobar si la sesión fue creada hace más de 30 min (18000 segundos), usando la variable anteriormente creada, y regenerar la sesión (session_regenerate_id() (http://php.net/manual/en/function.session-regenerate-id.php)). Actualizar la variable de sesión que contiene time().

Cualquier duda o problema con tu función, muestranosla y te ayudaremos.

Una vez tengas tu función creada, la llamas al principio de tu index.php, en lugar de session_start().


Título: Re: Usuario Php
Publicado por: AlbertoBSD en 23 Mayo 2016, 14:46 pm
Yo antes usaba los metodos descritos anteriormente y despues decidi migrar a almacenar las secciones en la base de datos lo cual tiene varias ventajas adicionales y un mejor control de cookies

Offtopic

Le he respondido varios mensajes a este usuario y ni un gracias he recivido...