Foros del Web » Programando para Internet » PHP »

La sesión caduca al ingresar, se pierde muy rápido

Estas en el tema de La sesión caduca al ingresar, se pierde muy rápido en el foro de PHP en Foros del Web. Hola, tengo un problema que me pasa solo en el hosting, he probado en varios y me pasa siempre lo mismo. - Ingreso con mi ...
  #1 (permalink)  
Antiguo 14/01/2013, 00:44
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Exclamación La sesión caduca al ingresar, se pierde muy rápido

Hola, tengo un problema que me pasa solo en el hosting, he probado en varios y me pasa siempre lo mismo.

- Ingreso con mi usuario y clave...
- Acceso permitido y me muestra el panel principal.
- Click en una opción del menú(por ejemplo Clientes)

Y me muestra el mensaje de "Su sesión ha expirado, por favor inicie sesión"

No entiendo lo que pasa, si logré ingresar normal y el panel principal también valida la sesión... a la segunda ya no funciona, se pierde...

Ojo, esto me pasa solo en algunas PC, sea cual sea el navegador, en ciertas PC pasa este problema.

Esto es lo que tengo en mi archivo sesion.php

Código PHP:
<?php
session_start
();

if(
$_SESSION['usuario']=="")
 { 
   die( 
"<script language='JavaScript' type='text/javascript'>    
   alert('Su sesión ha expirado, por favor inicie sesión'); window.location='/index.php'; </script> Su sesión ha expirado, por favor inicie sesión"
);
 } 
?>
Gracias por su ayuda...
  #2 (permalink)  
Antiguo 14/01/2013, 01:16
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Vos decís que te logueas perfecto, hasta podes entrar en el panel de administración, pero le das algún valor a la session usuario al momento de que te logueas? o sea, cuando te acepta el login e ingresas a la parte del panel de administración haces algo como $_SESSION['usuaro'] = valor ? porque si no lo haces entonces luego cuando quieras entrar en menu clientes como decís cuando haga la comprobación de si el valor de esa sesion es == a "" nunca vas a poder entrar obviamente.
  #3 (permalink)  
Antiguo 14/01/2013, 01:40
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Me explico...

Cuando me logeo activo las sesiones y me voy a principal.php, en principal.php se muestra el nombre del usuario y login(echo $_SESSION['nombres']." ".$_SESSION['usuario'])

principal.php tiene en la linea 1 require("sesion.php"), que se encarga de validar si la sesion esta activa...

Hasta aqui todo bien, si valida sesion.php y y muestra los valores en la interfaz...

El problema esta cuando voy a otra opcion, por ejemplo, clientes.php... que tambien tiene en la linea 1 require("sesion.php")... aqui parece que la sesion ya se pierde y simplemente me vota del sistema...

Si me logeo de nuevo el problema se ha solucionado, puedo ingresar a cualquier parte... lo extraño es que la primera vez se pierde la sesion...
  #4 (permalink)  
Antiguo 14/01/2013, 01:54
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Entonces por lo que me decís tenes 1 problema de tu lógica de programación, trata de revisar bien tus archivos a ver que tienes, porque problema de tiempo de caducidad de sesión no es tampoco.
  #5 (permalink)  
Antiguo 14/01/2013, 06:13
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 12
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Buenas, podrias mostrarnos como validas la sesion osea "sesion.php", para ayudarte mejor..
y tambien algun script donde se caduca la sesion por ej: clientes.php

Saludos
  #6 (permalink)  
Antiguo 14/01/2013, 12:20
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

<?php
session_start();

if($_SESSION['usuario']=="")
{
die( "<script language='JavaScript' type='text/javascript'>
alert('Su sesión ha expirado, por favor inicie sesión'); window.location='/index.php'; </script> Su sesión ha expirado, por favor inicie sesión");
}
?>
  #7 (permalink)  
Antiguo 14/01/2013, 12:22
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Si pulso F5 en principal.php todo ok, muestra los valores de la sesion creadas... cuando doy click en el menu para ir al mismo principal.php, ahi sesion caduca....
  #8 (permalink)  
Antiguo 14/01/2013, 12:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Es muy probable que no estes pasando la cookie de sesión, con lo cual PHP no puede persistir la sesión, verifica que la cookie de sesión exista.

Recuerda que hay algunos antivirus que bloquean las cookies y es probable que eso sea lo que te esta pasando y por eso se "pierde".

Saludos.
  #9 (permalink)  
Antiguo 14/01/2013, 12:53
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Yo seguiría mirando tu lógica en el sistema, en los distintos archivos, en algún lugar estas haciendo un unset o destroy, revisa todos los scripts en donde uses sessiones.
  #10 (permalink)  
Antiguo 14/01/2013, 15:42
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Prueba esto:
<?php
if(!isset($_SESSION))session_start();

if($_SESSION['usuario']=="")
{
die( "<script language='JavaScript' type='text/javascript'>
alert('Su sesión ha expirado, por favor inicie sesión'); window.location='/index.php'; </script> Su sesión ha expirado, por favor inicie sesión");
}
?>
  #11 (permalink)  
Antiguo 17/01/2013, 14:32
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

El problema persiste
  #12 (permalink)  
Antiguo 17/01/2013, 14:59
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Cita:
Iniciado por GatorV Ver Mensaje
Es muy probable que no estes pasando la cookie de sesión, con lo cual PHP no puede persistir la sesión, verifica que la cookie de sesión exista.

Recuerda que hay algunos antivirus que bloquean las cookies y es probable que eso sea lo que te esta pasando y por eso se "pierde".

Saludos.
Las cookies de sesión no son cookies "normales".Nunca he visto un antivirus que bloquee una cookie de sesión.No hay que mezclar una cosa con la otra.
El programador no tiene que preocuparse de la cookie de sesión.En todo caso, del identificador de sesión, si está cambiando de dominio.

O hay un problema en la lógica, o se está cambiando de dominio.
  #13 (permalink)  
Antiguo 17/01/2013, 15:04
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Tanto en la página donde "funciona" la sesión, como en la que "no funciona", haz echo de session_id(), despues de session_start.Compara que sea el mismo id en las dos paginas.
  #14 (permalink)  
Antiguo 17/01/2013, 16:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

@dashtrash.

Todo depende como este configurado y como levantes la sesión, pero sí por defecto la cookie de sesión es una cookie normal, de ahí que muchos ataques XSS sean precisamente para eso, para robar la cookie de sesión.

Si pones que tu cookie sea HTTP Only entonces sí no tienes problemas, pero si usas una cookie normal, es perfectamente posible que alguno de los "softwares de protección" pueda bloquearla.

En particular yo he tenido muchos problemas con el Norton Internet Security, ya que por defecto bloquea las cookies, desconozco si en versiones nuevas lo siga haciendo.

Pero como @richardinj dice que el problema es intermitente entre algunas PCs y otras no, es por eso que lo más probable es que las PCs que no sirven, no estén aceptando las cookies de sesión.
  #15 (permalink)  
Antiguo 17/01/2013, 22:47
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Hola, he solucionado el problema... era muy raro, pero era un problema de URL...

En el sistema habia creado una sesion llamada URLBASE... $_SESSION['urlbase']="http://www.sistema.com/sistema/"

Bien esta sesión se crea al logearse... y le envio al principal asi : header("location:principal.php")

Al entrar al sistema y hacer click en otro lado(url concatenadas con la urlbase) la sesion se perdia, es como si fuera otra URL y caducaba todo...

La solución fue crear $_SESSION['urlbase']="http://www.sistema.com/sistema/" en la linea 2, debajo del sesion_star()

y en ves de hacer header("location:principal.php") hice una redireccion con javascript...

y problema solucionado...

gracias al primer post de dashtrash me dio una pista clave....

saludos,
  #16 (permalink)  
Antiguo 17/01/2013, 22:50
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

...Otro detalle... la sesion caduca al logearse si el usuario accede como http://sistema.com/sistema/, necesariamente debe acceder con WWW...

o en todo caso crear en el index un script donde si encuentra que accede sin WWW http://sistema.com/sistema/ le redireccione a http://www.sistema.com/sistema/...
  #17 (permalink)  
Antiguo 18/01/2013, 00:06
 
Fecha de Ingreso: diciembre-2009
Mensajes: 23
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

hola ten cuidado cuando haces esto www.tu.com http://www.tu.com http://tu.com en sesion de php es como si fueran paginas diferentes siempre ten cuidado con eso a mi me paso mucho hasta que que comprendi que siempre hay que navevar con las url sino se "pierde" la sesion de hecho si regresas a laURL normamente esta iniciada
  #18 (permalink)  
Antiguo 18/01/2013, 09:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Eso es por la cookie de sesión, para el browser, www.algo.com y algo.com son dos subdominios diferentes, tienes que poner en los parámetros de sesión, que la cookie de sesión sea válida para .algo.com así va a estar disponible en www.algo.com y en algo.com.

Saludos.
  #19 (permalink)  
Antiguo 18/01/2013, 11:51
 
Fecha de Ingreso: diciembre-2009
Mensajes: 23
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Cita:
Iniciado por GatorV Ver Mensaje
Eso es por la cookie de sesión, para el browser, [url]www.algo.com[/url] y algo.com son dos subdominios diferentes, tienes que poner en los parámetros de sesión, que la cookie de sesión sea válida para .algo.com así va a estar disponible en [url]www.algo.com[/url] y en algo.com.

Saludos.
hooo correcto disculpa y como se aria esto es con un ini_set
  #20 (permalink)  
Antiguo 18/01/2013, 12:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

No, la cookie de sesión se cambia usando session_set_cookie_params antes de llamar a session_start().

Saludos.
  #21 (permalink)  
Antiguo 19/01/2013, 14:22
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

Prueba con esto:
Código PHP:
if(!isset($_SESSION)){
    
session_set_cookie_params(0'/''.dominio.com');
    
session_start();

  #22 (permalink)  
Antiguo 19/01/2013, 14:44
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: La sesión caduca al ingresar, se pierde muy rápido

La url base de tu web, establécela en un fichero de configuración, usando define().

define("WEBURL","http://.....");

Y luego, no vuelvas a escribirla "a pelo" en ningún lado..Te ahorrarás problemas..

Etiquetas: sesión, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:19.