Foros del Web » Programando para Internet » PHP »

Pierdo valor de variable $_SESSION

Estas en el tema de Pierdo valor de variable $_SESSION en el foro de PHP en Foros del Web. Que tal buen dia, tengo un problema al pasar una variable de $_SESSION entre paginas pierdo el valor y no logro encontrar porque es, les ...
  #1 (permalink)  
Antiguo 24/02/2010, 09:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta Pierdo valor de variable $_SESSION

Que tal buen dia, tengo un problema al pasar una variable de $_SESSION entre paginas pierdo el valor y no logro encontrar porque es, les agradeceria mucho su ayuda.
  #2 (permalink)  
Antiguo 24/02/2010, 09:11
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 3 meses
Puntos: 55
Respuesta: Pierdo valor de variable $_SESSION

session_start() al principio de cada pagina.
  #3 (permalink)  
Antiguo 24/02/2010, 09:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Pierdo valor de variable $_SESSION

Gracias por responder amigo pero si lo tengo mira esto;

sesion.php
Código PHP:
<?php
session_start
();//se inicia la sesion
    
include("conexion.php");
    if (isset(
$_POST['txtusu']))
    {
//inicio del if si se usa txtusu
      
$usuario=$_POST['txtusu'];
      
$clave=$_POST['txtpass'];
        if ((
$usuario=="") || ($clave==""))
        {
//inicio del if si clave o usuario =" "
           
$_SESSION['NO']="Debe llenar las dos cajas de texto!!!";
           
$dom="inicio_sesion.php";              
                    
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$dom); 
        }
//fin del if si clave o usuario ==" " 
          
else
          {
//inicio del else si los campos txtusu y txtclave no son vacios         
             
$sql sprintf("SELECT * FROM usuarios WHERE nom_usu='".mysql_real_escape_string($usuario)."'");
             
$r mysql_query($sql,$con);
             
$fila=mysql_fetch_array($r);     
                if (
$fila 0)
                {
//inicio del if si fila > 0
                
$pass $fila['password'];
                
$clave sha1($clave);
                        if (
$pass == $clave)
                        {
//inicio del if para validar la clave
                            
session_register('nomusu');
                            
$_SESSION['nomusu'] = $fila['nombre'].' '.$fila['ape_pat'].' '.$fila['ape_mat'];
                            
$_SESSION['tiempo'] = time();
                            
$_SESSION['tipo_usu'] = $fila['tipo_usu'];
                            
$dom="inicio_sesion.php";
                            
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$dom); 
                        }
//fin del if para validar la clave
                        
else
                        {
//inicio del else del pasword
                            
$_SESSION['NO']="Contraseña no válida!!!";
                            
$dom="inicio_sesion.php";
                            
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$dom);
                        }
//fin del else del password
                
}//fin del if si fila > 0
                        
else
                        {
//inicio del else del usuario
                            
$_SESSION['NO']="Nombre de usuario no válido!!!";
                            
$dom="inicio_sesion.php";
                            
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$dom);
                        }
//fin del else del usuario
                        
mysql_free_result($sql);//libera la consulta
           
}//fin del else si los campos txtusu y txtclave no son vacios
                    
mysql_close();//se cierra mysql
    
}//fin if si se usa txtusu
else
session_destroy();//se termina la sesion           
?>
script.php
Código PHP:
<?php 
//el arroba funciona si la session ya se ha cargado no volver ha cargar
@session_start();
$segundos 1800;
    if(
$_SESSION['nomusu']==""){
    
session_unset();
    
session_destroy();
?>
        <script type="text/javascript">
           document.location.href='http://localhost/UPSZ/index.php';
         </script>
<?php    
    
}elseif(($_SESSION['tiempo'] + $segundos) < time()){
    
session_unset();
    
session_destroy();
?>
         <script type="text/javascript">
           alert("Su sesion ha expirado por inactividad, porfavor vuelva a iniciar sesion");
           document.location.href='http://localhost/UPSZ/index.php';
         </script>
<?php    
    
}else{
    
$_SESSION['tiempo'] = time();
    } 
?>
espero que con esto me ayudes un poco mas amigo gracias.
  #4 (permalink)  
Antiguo 24/02/2010, 09:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 3 meses
Puntos: 55
Respuesta: Pierdo valor de variable $_SESSION

cuales son los valores que pierdes
$_SESSION['nomusu'] y $_SESSION['tiempo'] ??
hace un echo de esas variables antes de cambiar de pagina para ver si tienen algun valor.
  #5 (permalink)  
Antiguo 24/02/2010, 09:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Respuesta: Pierdo valor de variable $_SESSION

exacto esas dos variables son las que pierdo pero mira pasa lo siguiente:

Cuando en el inicio de sesion entro correctamente me redirecciona nuevamente a la pagina de inicio de sesion pero se agregan mas opciiones al menu, entonces al seleccionar una opcion del menu de las que se agregaron es donde se pierde la variable, para se excatos es en este archivo:

Código PHP:
<?php 
include("includes/script.php");
include(
"includes/cabecera.php");
include(
"includes/menu.php");
include(
"includes/conexion.php");
?>
<div id="contenido"><!--Div inicio contenido-->

     <div id="divavisos"><!--Div inicio avisos importantes-->
     <h1 id="h1h1"><span id="h1noticias">Eventos</span></h1>
     <table width="180" border="0" cellspacing="0" cellpadding="0">
       <tr>
          <td><span style="font-weight:bold; color:#8f1001; font-size:13px">¿Deseas ingresar a la Universidad?</span></td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td><span id="inscribeteaqui"><a href="#">¡Inscríbete aquí!</a></span></td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td><span style="color:#8f1001; font-size:13px"><b>Exámen de admisión:</b></span><br />10 de julio de 2010</td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td><span style="color:#8f1001; font-size:13px"><b>Inicio de clases:</b></span><br />Septiembre 2010</td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
     </table>
     </div><!--Div fin avisos importantes-->
 
     <div id="divofertas"><!--Div inicio ofertas-->
      <span id="spanoferta">Oferta Educativa</span>
      <table width="180" border="0" cellspacing="0" cellpadding="0">
      <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td><div align="left"><img src="imagenes/ia.jpg" align="absmiddle"/><span id="ofertas" style="font-weight:bold; color:#666666; font-size:10px;margin-left:3px;"><a href="#">Ingeniería Agrotecnológica</a></span></div></td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td><div align="left"><img src="imagenes/im.jpg" align="absmiddle"/><span id="ofertas" style="font-weight:bold; color:#666666; font-size:10px;margin-left:3px;"><a href="#">Ingeniería Mecatrónica</a></span></div></td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
       <tr>
          <td><div align="left"><img src="imagenes/ni.jpg" align="absmiddle"/><span id="ofertas" style="font-weight:bold; color:#666666; font-size:10px ;margin-left:3px;"><a href="#">Negocios Internacionales</a></span></div></td>
       </tr>
       <tr>
          <td>&nbsp;</td>
       </tr>
     </table>
     </div><!--Div fin ofertas-->
     <div id="divcalendario"><!--Div inicio calendario-->
     <span id="spanoferta">Calendario</span>
     <table width="155" border="0" cellspacing="0" cellpadding="0">
       <tr>
          <td>&nbsp;</td>
       </tr>
     </table>
     <?
$anoInicial 
'2009';
$anoFinal '2020';
?>
<script>
function tratarFecha(dia,mes,ano){
  <?=$funcionTratarFecha?>
}
</script>
<style>
.m1 {
   font-family:MS Sans Serif;
   font-size:8pt;
}
a {
   text-decoration:none;
   color:#000000;
}
</style>
</head>
<body>
<form><table width="180" height="150" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#F4AE00">
  <tr>
    <td>
<?
$fecha 
getdate(time());
if(isset(
$_GET["dia"]))$dia $_GET["dia"];
else 
$dia $fecha['mday'];
if(isset(
$_GET["mes"]))$mes $_GET["mes"];
else 
$mes $fecha['mon'];
if(isset(
$_GET["ano"]))$ano $_GET["ano"];
else 
$ano $fecha['year'];
$fecha mktime(0,0,0,$mes,$dia,$ano);
$fechaInicioMes mktime(0,0,0,$mes,1,$ano);
$fechaInicioMes date("w",$fechaInicioMes);
?>
    <select size="1" name="mes" class="m1" onChange="document.location = '?dia=<?=$dia?>&mes=' + document.forms[0].mes.value + '&ano=<?=$ano?>';">
<?
$meses 
= Array ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
for(
$i 1$i <= 12$i++){
  echo 
'      <option ';
  if(
$mes == $i)echo 'selected ';
  echo 
'value="'.$i.'">'.$meses[$i-1]."\n";
}
?>
    </select>&nbsp;&nbsp;&nbsp;<select size="1" name="ano" class="m1" onChange="document.location = '?dia=<?=$dia?>&mes=<?=$mes?>&ano=' + document.forms[0].ano.value;">
<?
for ($i $anoInicial$i <= $anoFinal$i++){
  echo 
'      <option ';
  if(
$ano == $i)echo 'selected ';
  echo 
'value="'.$i.'">'.$i."\n";
}
?>
    </select><br>
    <font size="1">&nbsp;</font>
    <table border="0" cellpadding="2" cellspacing="0" width="170" height="90" class="m1" bgcolor="#FFFFFF">
<?
$diasSem 
= Array ('L','M','M','J','V','S','D');
$ultimoDia date('t',$fecha);
$numMes 0;
for (
$fila 0$fila 7$fila++){
  echo 
"      <tr>\n";
  for (
$coln 0$coln 7$coln++){
    
$posicion = Array (1,2,3,4,5,6,0);
    echo 
'<td width="14%" height="19"';
    if(
$fila == 0)echo ' bgcolor="#808080"';
    if(
$dia-== $numMes)echo ' bgcolor="#8f1001"';
    echo 
" align=\"center\">\n";
    if(
$fila == 0)
    echo 
'<font color="#FFFFFF">'.$diasSem[$coln];
    elseif((
$numMes && $numMes $ultimoDia) || (!$numMes && $posicion[$coln] == $fechaInicioMes)){
      echo 
'<a onclick="tratarFecha('.(++$numMes).','.$mes.','.$ano.')">';
      if(
$dia == $numMes)echo '<font color="#FFFFFF">';
      echo (
$numMes);
    }
    echo 
"</td>\n";
  }
  echo 
"      </tr>\n";
}
?>
    </table>
    </td>
  </tr>
</table></form>
     </div><!--Div fin calendario-->
         
   </div><!--Div fin contenido-->
<?php
include("includes/pie.php");
?>

y hago un echo de la variable de session antes de elegir una de las opciones nuevas y si me imprime el nombre de la persona que inicio sesion.
  #6 (permalink)  
Antiguo 24/02/2010, 10:46
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Pierdo valor de variable $_SESSION

usas variables con el mismo nombre de $_SESSION['nomusu'] y $_SESSION['tiempo'] ??, tal vze tengas activadas las register_globals y las estes modificando...
__________________
blog: hector2c.wordpress.com
email: [email protected]

Etiquetas: pierdo, session, 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 19:27.