Foros del Web » Programando para Internet » PHP »

Ayuda con variable sesion

Estas en el tema de Ayuda con variable sesion en el foro de PHP en Foros del Web. Hola, tengo este script con una variable de sesion, pero dura poquito tiempo activa. ¿ Que habria que cambiar o añadir para que dure hasta ...
  #1 (permalink)  
Antiguo 05/09/2010, 02:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Ayuda con variable sesion

Hola, tengo este script con una variable de sesion, pero dura poquito tiempo activa. ¿ Que habria que cambiar o añadir para que dure hasta que el usuario decida salir (logout).?

login.php

<?php
$_SESSION['username']=$_POST['username'];
include("config.php");
// conectar con el servidor mysql
$link = mysql_connect($server, $db_user, $db_pass) or die ("No se pudo conectar a mysql porque ".mysql_error());
// Selecciona la base de datos
mysql_select_db($database)
or die ("No se pudo seleccionar la base de datos porque ".mysql_error());
$match = "select id from $table where username = '".$_POST['username']."'and password = '".$_POST['password']."';";
$qry = mysql_query($match)or die ("No es posible comparar los datos debido a ".mysql_error());
$num_rows = mysql_num_rows($qry);
if ($num_rows <= 0) {
echo "<font size=2 align=center face=verdana color=#696868>Lo sentimos, no hay ningún nombre de usuario o contraseña con: <strong>".$_POST['username']."</strong><br>";
echo "<p align=center><font size=2 align=center face=verdana color=#696868>
<a href=login.html style=text-decoration: none>Inténtelo de nuevo</a></p>";
}
else {
setcookie("loggedin", "".$_POST['username']."", time()+(86400 * 24));
mysql_connect($server, $db_user, $db_pass) or die (mysql_error());
$result = mysql_db_query($database, "select * from $table WHERE username = '$username'") or die (mysql_error());
while ($qry = mysql_fetch_array($result)) {
echo "<font size=3 face=verdana color=#008000 align=center>Bienvenido: <strong>$qry[name1] $qry[name2]</strong><br>"; }
echo "<br><font size=2 align=center face=verdana color=#696868><b>¿ Desea abandonar su sesión ? </b><a href=logout.php>Salir</a></br>";
echo "<tr></tr>";
?>
  #2 (permalink)  
Antiguo 05/09/2010, 02:40
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Ayuda con variable sesion

¿tienes puesto session_start(); absolutamente al inicio de TODAS tus paginas donde quieres que se propague la sesión?

Chan!!!
  #3 (permalink)  
Antiguo 05/09/2010, 10:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Ayuda con variable sesion

Gracias por responder.
Si está puesto en las paginas, el caso es la duracion de la sesion, quiero que dure hasta que se decida salir, no que dure cinco minutos.
  #4 (permalink)  
Antiguo 05/09/2010, 10:58
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Ayuda con variable sesion

Puedes configurar la duracion de la session en tu php.ini ¿donde tienes la pagina en un servidor dedicado o uno compartido? Imagino que tendrás una pagina de configuracion, busca la variable session.gc_maxlifetime y ponle muuuuuuuuuchos segundos.

Otra idea, es que cuando un usuario se identifique guardes en cookies su nombre de usuario y contraseña sin tiempo de caducidad, de modo que cuando un usuario ya logueado vuelva a tu web al dia siguiente lo primero que hagas (tendras que ponerlo en todas las paginas) sea mirar si tiene algo en las cookies y auto-loguear con dichos datos y sin que el usuario se de cuenta, habra "recuperado" la sesion.

Y luego en el boton de cerrar sesion no solo destruyes la sesion sino que tambien borras dichas cookies.

Saludossssssss

Etiquetas: variables
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 06:26.