Foros del Web » Programando para Internet » PHP »

Duración de sesiones

Estas en el tema de Duración de sesiones en el foro de PHP en Foros del Web. Hola gente, tengo un sistema de administración y uso sesiones para loguearme. En un archivo llamado "index.php" tengo el form la loguearme y otro archivo ...
  #1 (permalink)  
Antiguo 28/09/2007, 19:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Duración de sesiones

Hola gente, tengo un sistema de administración y uso sesiones para loguearme. En un archivo llamado "index.php" tengo el form la loguearme y otro archivo que loguea. El tema es que no dura nada, se me desloguea solo, es decir, por ejmplo inserto una noticia y me dice que la noticia se ingreso correctamente y al lado tengo un boton que dice "Ir al panel de administracion" y le hago clic (ese enlace se dirige a index.php) y tengo que volver a loguearme :S

Quería saber como es el tema, por ejemplo de decir que este la sesion abierta durante 1 hora (si es que no me deslogueo).

Desde ya gracias
  #2 (permalink)  
Antiguo 29/09/2007, 01:35
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Duración de sesiones

mira el tema de sesiones lo maneja php, si tienes acceso al php.ini debes ver en cuanto tienes la variable de session session.gc_maxlifetime = 1440, que es por defecto, ahora a lo mejor lo que haces es crear otra sesion cuando cambias de pagina y se pierde la antigua por ello te pide logearte nuevamente, revisa tu codigo, dime si el numero es menor lo cambias
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 29/09/2007, 03:23
 
Fecha de Ingreso: junio-2005
Mensajes: 33
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Duración de sesiones

Hola Gesking, en realidad la función session.gc_maxlifetime que te dijo kaninox es correcta para modificar el tiempo que una sesión estará abierta. Pero creo que eso se usa, por ejemplo, para evitar que un user se deje abierta una sesión en un ordenador que no es privado. Has mirado si tienes el session_start(); justo al principio de todos las paginas? si no están al principio en todas (las que quieras que tenga sesiones abiertas), cuando carges esa el user estará fuera de la sesión.
  #4 (permalink)  
Antiguo 29/09/2007, 11:40
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Duración de sesiones

Gracias, me hicieron dar cuenta de mi error.

El error era que tengo el index.php donde muestro el formulario para ingresar con mi cuenta. Este era mi error:

Código PHP:
<?
session_start
();
if(!isset(
$SESSION)){
header("location:index.php");
} else {
include(
"config.php");
include(
"../header.php");
include(
"../meta.php");
?>
<table width="700" align="center">
<tr>
<td width="1%" valign="top">
<?php include("../menu.php"); ?>
</td>
<td width="99%" valign="top">
<form action="comprueba.php" method="POST">
  <table width="100%" border="0" cellspacing="5" cellpadding="0">
    <tr>
      <td width="6%">Admin:</td>
      <td width="94%"><input type="text" name="login" /></td>
    </tr>
    <tr>
      <td>Clave:</td>
      <td><input type="password" name="pass" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="submit" type="submit" value="Entrar" /></td>
    </tr>
  </table>
  </form>
</td>
</tr>
</table>
<?php 
include("../derechos.php"); 
echo(
"</body></html>");
}
?>
Lo arreglé y quedó así
Código PHP:
<?
session_start
();
if(!isset(
$SESSION)){
include(
"config.php");
include(
"../header.php");
include(
"../meta.php");
echo 
'<table width="700" align="center">
<tr>
<td width="1%" valign="top">'
;
include(
"../menu.php");
echo 
'</td>
<td width="99%" valign="top">
<form action="comprueba.php" method="POST">
  <table width="100%" border="0" cellspacing="5" cellpadding="0">
    <tr>
      <td width="6%">Admin:</td>
      <td width="94%"><input type="text" name="login" /></td>
    </tr>
    <tr>
      <td>Clave:</td>
      <td><input type="password" name="pass" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="submit" type="submit" value="Entrar" /></td>
    </tr>
  </table>
  </form>
</td>
</tr>
</table>'
;
include(
"../derechos.php"); 
echo(
"</body></html>");
} else {
header("location:user.php");
}
?>
Les agradezco por abrir mi mente :)
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 08:20.