Foros del Web » Programando para Internet » PHP »

Problema con variable de sesion

Estas en el tema de Problema con variable de sesion en el foro de PHP en Foros del Web. Hola a todos, Estoy manejando sesiones en mi aplicación. El problema es que en una sóla página, si actualizo, pierdo el valor de 1 variable ...
  #1 (permalink)  
Antiguo 04/06/2007, 06:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema con variable de sesion

Hola a todos,

Estoy manejando sesiones en mi aplicación. El problema es que en una sóla página, si actualizo, pierdo el valor de 1 variable de sesión, el resto se mantienen bien.

Yo entro por 1º vez a esa página, y todas las variables están bien, si doy a F5, pierdo el valor de una ellas.

¿Qué puede pasar?

Gracias
  #2 (permalink)  
Antiguo 04/06/2007, 06:22
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Problema con variable de sesion

Deberías postear tu código para poder decirte algo.
Saludos


PD: puede ser que se esté sobreescribiendo si tienes register_globals activado.
  #3 (permalink)  
Antiguo 04/06/2007, 06:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con variable de sesion

Tengo esto en todas las páginas:

Cita:
session_start();
include "logeado.php";
En logeado.php

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

if ((
$_SESSION['usuario'] == '') || ($_SESSION['password'] == '') || ($_SESSION['nombre'] == '')) {
include(
"index.php");        
exit;
}
else {
//Calculamos el tiempo transcurrido
$fechaGuardada $_SESSION["ultimoAcceso"];
$ahora date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
    
//comparamos el tiempo transcurrido
if($tiempo_transcurrido >= 600) {  //si pasaron 10 minutos o más

$link mysql_connect("localhost""root""root");
mysql_select_db("estadisticas_web"$link);
mysql_query("UPDATE administrador SET estado='no_autenticado' where (nombre_usuario='".$_SESSION['usuario']."' and contraseña='".$_SESSION['password']."')"$link);
            
session_unset();
session_destroy(); // destruyo la sesión
header("Location: index.php"); //envío al usuario a la pag. de autenticación              
}else { //sino, actualizo la fecha de la sesión
$_SESSION["ultimoAcceso"] = $ahora;
}
}

?>
En todas las páginas me mantiene bien las sesiones, pero en esta concreta (que es igual que el resto), me entra por la 1º rama del if, ya que la variable $_SESSION['nombre'] me aparece vacía SOLO si actualizo con F5 o intento navegar de ahí a cualquier otra pagina.
  #4 (permalink)  
Antiguo 04/06/2007, 07:06
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Problema con variable de sesion

Hola, no veo error en esta página en particular. Debes postear la página que baja despues del archivo de logueo, porque allí debe estar el problema. Cuando la descarga, se limpia la variable, es por eso que al actualizar ya no está. Debes postear la página que baja después incluir logueado.php allí debe dee star el problema.

Mas allá de esto veo que estas usando dos veces session_start();
No es necesario. Con solo una es sufi.-

Espero tu respuesta
  #5 (permalink)  
Antiguo 04/06/2007, 07:38
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con variable de sesion

Si quito este código me funciona correctamente, pero es simplemente escribir los datos de una consulta previa a una BD....

Código:
<td><select name="comboAlumno" size="1" style="font-size:10px" ><option>-- Todos los alumos --</option>
<?php while(list($id, $login,$nombre,$apellido1,$apellido2) = mysql_fetch_array($result_alumno)){ 
echo '<option value="'.$login.'">'.$apellido1.' '.$apellido2.' , '.$nombre.'</option>';
} ?></select>
</td>
Simplemente relleno una lista con los valores obtenidos. Esto me funciona, pq me rellena el cmbo bien, pero no sé porqué me afecta a la sesión.
  #6 (permalink)  
Antiguo 04/06/2007, 08:05
 
Fecha de Ingreso: diciembre-2006
Ubicación: Miami
Mensajes: 55
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con variable de sesion

ok este fin de semana estuve trabajando en algo parecido pero con cokkies y me paso lo mismo te doy una idea que em funciono segun lo que lei las cookies solo se cierran cuando el valor que se le asigno anteriormente es = 0 y efectivamente ya todo funciona como yo queria trata d ever como te puede ayudar esto que te digo yo lo hice con sentencias if else arme tremendo enredo pero alfinal funciona te deseo suerte
  #7 (permalink)  
Antiguo 04/06/2007, 08:13
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con variable de sesion

Hola santuariosw,

Gracias por contestar. Pero yo en ningún momento mdifico el valor de esa variable, y sólo me cambia 1, el resto no.
  #8 (permalink)  
Antiguo 04/06/2007, 08:26
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con variable de sesion

esto tengo yo, ojala te te ayude en algo

Código PHP:
<?    
session_start
();    

// Aquí validas una variable de sesió o condición en general .. si no se cumple el resto del script o página a generar NO se ejecutará nunca .. tu ya terminas la ejecución del script en este punto y redireccionas . .abandonas este script en este punto (en el "exit"). 
if(empty($_SESSION['usuario'])) {    
  
header("location: noautorizado.php");    
  exit;  
}    

// aquí tienes otra validación .. sucede lo mismo que en el caso anterior. 
if ($_SESSION['usuario_nivel'] != "1"){    
  
header("location: noautorizado_nivel.php");    
  exit;        
}
// Si tus validaciones "PHP" pasan .. aquí generas una página concreta. Así que respeta su HTML correcto .. con tu definición de "<html> sus <head> y sus <body> según dicta el standar HTML 

?>
esto sirgifica, si intentas entrar a la pagina saltandote el logueo, te manda a otra pagina de error, de lo contrario si te logueas y no tienes el nive para entrar, te mando otro error. Si pasas todo eso entras sin problema
  #9 (permalink)  
Antiguo 04/06/2007, 08:35
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con variable de sesion

Sí sí, si el script que yo tengo tb me funciona a la perfección. El problema es a la hora de ejecutar esa consulta que me borra 1 de las variables.
  #10 (permalink)  
Antiguo 04/06/2007, 08:43
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Problema con variable de sesion

Evidentemente tienes un problema de conflicto de variables (es que lo puedo suponer).

Variables en conflicto:
a) $_SESSION['nombre']

b)
<?php while(list($id, $login,$nombre,$apellido1,$apellido2) = mysql_fetch_array($result_alumno)){
echo '<option value="'.$login.'">'.$apellido1.' '.$apellido2.' , '.$nombre.'</option>';
} ?>


Prueba en cambiar el nombre de la variable "$nombres" dentro del while. Úsala como $name (por ejemplo) o como quieras.

Espero tu respuesta.
Saludos
  #11 (permalink)  
Antiguo 04/06/2007, 09:08
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con variable de sesion

Muchííííííísimas gracias usermax,

Era eso !!! Un conflicto con esa variable !!!!

Gracias de nuevo.
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 07:22.