Foros del Web » Programando para Internet » PHP »

Problema con sesiones!

Estas en el tema de Problema con sesiones! en el foro de PHP en Foros del Web. Hola! Debido a la hora, voy a postear rápido, pero entendible. Estuve hasta recién terminando de configurar una base de datos para un sistema de ...
  #1 (permalink)  
Antiguo 26/07/2011, 02:15
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 16 años, 3 meses
Puntos: 0
Exclamación Problema con sesiones!

Hola! Debido a la hora, voy a postear rápido, pero entendible. Estuve hasta recién terminando de configurar una base de datos para un sistema de usuarios de una web. Todo va perfecto, el problema que tengo, es que dentro de la pagina puse un recuadro con código PHP, que cuando haya una sesión iniciada, aparezca el mail de dicho usuario, y la opción para poder salir. Y si no se encuentra iniciada ninguna sesión, aparecen las opciones de registrarse, o de ingresar si es que ya uno se encuentra registrado.

Lo que me sucede, cuando pruebo con una sesión iniciada, es que cuando paso desde una sección que posee un sistema de noticias hacia otra sección, el lugar donde deberia seguir apareciendo la dirección de mail como usuario, aparece "root", siguiendo asi iniciada la sesión.

Si yo paso de sección en sección sin pasar por esta de las noticias, todo funciona perfectamente, apareciendo siempre el mail.

No se si esto sucede por alguna interferencia justo con esta sección donde por código se conecta con la otra tabla de la base donde se almacenan las noticias. No se me ocurre que otra cosa puede ser.

Dejo los códigos de una sección común, el de la sección de noticias, y también el del formulario de ingreso, para que puedan ver que es lo que sucede.


Index.php (página común - sin problemas)
Código PHP:
<?
session_start
();
$_SESSION["autorizado"];

if (
$_SESSION["validar"] != "autorizado") {
    
    
$mensaje "<a href='registro.php' class='enlace_c'>Registrarse</a> - <a href='iniciar sesion.php' class='enlace_c'>Ingresar</a>";
}    
else
{
    
$mensaje "<span class='mail' align='center'>" $_SESSION["usuario"] . "</span><br><a href='salir.php' class='enlace_c'>Salir</a>";
}

?>


<body>
<table width="849" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><table width="849" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr valign="top">
        <td height="139" background="images/header.jpg" style="background-position:top; text-align: center; color: #CCC;"><table width="223" border="0" align="right" cellpadding="0" cellspacing="0">
          <tr valign="top">
            <td height="55"><table width="199" border="0" cellspacing="0" cellpadding="0">
              <tr valign="top">
                <td height="46" background="images/fondoingresar.jpg"><table width="130" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td></td>
                  </tr>
                </table>
                  <table width="175" border="0" align="center" cellpadding="3" cellspacing="0">
                    <tr>
                      <td align="center"><?= $mensaje?></td>
                    </tr>
                  </table></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td height="32" background="images/menu.jpg" id="menu"><table width="710" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="715" class="shadow"><a href="#">Institucional</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="novedades.php">Novedades</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Capacitación</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Comunas</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="consultas.php">Consultas</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Foro</a></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td height="674" background="images/body 01.png"><span class="noticiatexto></span>
   </td>
      </tr>
      <tr>
        <td height="55" background="images/body 02.jpg">&nbsp;</td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>
Visor de novedades (donde se van cargando las noticias de la página, y se muestran como vista previa en un iframe):
Código PHP:
<?
    
        
include("admin/config.php");

        
$link mysql_connect($servidor$usuario$pass) or die(mysql_error());        
                
        
$bd mysql_select_db($basedato$link) or die(mysql_error());        
        
        
$sql "    SELECT * 
                    FROM noticias 
                    ORDER BY idNoticia DESC "
;
        
$resultado mysql_query($sql$link) or die(mysql_error());        
        
        if(
$resultado)
         {
           
           while(
$r mysql_fetch_array($resultado))
            {
              
              list(
$anio$mes$dia) = explode("-"$r['fecha']);      
        
?>
<table width="467" border="0" align="center" cellpadding="3" cellspacing="0" class="forTexts" >
  
  <tr valign="top"> 
    <td width="323"><span class="Estilo2" style="font-size: 14px; font-weight: bold; color: #666;"><? echo $r['titulo']; ?></span></td>
    
    <td width="74"><div align="left"><span class="Estilo3"><? echo $dia;?></span><span class="Estilo6">/</span><span class="Estilo3"><? echo $mes;?></span><span class="Estilo6">/</span><span class="Estilo3"><? echo $anio;?></span></div></td>
    <td width="70" align="center"><span class="Estilo3"><a href="novedadcompleta.php?id=<? echo $r['idNoticia']; ?>" target="_parent">Leer <span class="Estilo5">[+]</span></a></span></td>
  </tr>
  <tr valign="top" > 
    
    <td colspan="3"><span style="font-size: 11px; font-family: Verdana, Geneva, sans-serif; color: #999;"><? echo $r['breve']; ?></span></td>
  </tr>
</table>
<table width="467" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><span class="Estilo1">-----------------------------------------------------------------------------</span></td>
  </tr>
</table>
<?  }
   }
?> 
</body>
</html>
  #2 (permalink)  
Antiguo 26/07/2011, 02:16
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema con sesiones!

Noticia completa (se ve la totalidad de esta luego de seleccionarla en el iframe):
Código PHP:
<?
session_start
();
$_SESSION["autorizado"];

if (
$_SESSION["validar"] != "autorizado") {
    
    
$mensaje "<a href='registro.php' class='enlace_c'>Registrarse</a> - <a href='iniciar sesion.php' class='enlace_c'>Ingresar</a>";
}    
else
{
    
$mensaje "<span class='mail' align='center'>" $_SESSION["usuario"] . "</span><br><a href='salir.php' class='enlace_c'>Salir</a>";
}

?>
<body>
<table width="849" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><table width="849" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr valign="top">
        <td height="139" background="images/header.jpg" style="background-position:top; font-weight: bold; color: #CCC;"><table width="223" border="0" align="right" cellpadding="0" cellspacing="0">
          <tr valign="top">
            <td height="55"><table width="199" border="0" cellspacing="0" cellpadding="0">
              <tr valign="top">
                <td height="46" background="images/fondoingresar.jpg"><table width="130" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td></td>
                  </tr>
                </table>
                  <table width="175" border="0" align="center" cellpadding="3" cellspacing="0">
                    <tr>
                      <td align="center"><?= $mensaje?></td>
                    </tr>
                  </table></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td height="32" background="images/menu.jpg" id="menu"><table width="710" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="715" class="shadow"><a href="index.php">Institucional</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="novedades.php">Novedades</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Capacitación</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Comunas</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Consultas</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">Foro</a></td>
          </tr>
        </table></td>
      </tr>
      <tr valign="top">
        <td height="674" background="images/body 01 novedades.png"><table width="790" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr valign="top">
            <td width="499" height="675"><table width="490" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td height="37"><? include("admin/config.php");

        
$link mysql_connect($servidor$usuario$pass) or die(mysql_error());        
                
        
$bd mysql_select_db($basedato$link) or die(mysql_error());        
        
        
$sql "    SELECT * 
                    FROM noticias 
                    WHERE idNoticia = '"
$_GET['id'] ."'";
        
$resultado mysql_query($sql$link) or die(mysql_error());
        
        
$r mysql_fetch_array($resultado);    
        
?>
                  <br />                  
                  <table width="470" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td width="354" class="titulonoticia"><span class="Estilo1 Estilo14"><? echo $r['titulo']; ?></span></td>
                      <td width="116" align="right"><strong style="font-family: Verdana, Geneva, sans-serif; font-size: 10px; color: #666;"><? echo $r['fecha']; ?></strong></td>
                    </tr>
                    <tr>
                      <td colspan="2" align="center"><br /><img src="galeria/<? echo $r['foto'?>" width="470px" border="0" /></td>
                    </tr>
                    <tr>
                      <td colspan="2" class="noticiabreve"><br />
                        <span><? echo $r['breve']; ?></span></td>
                    </tr>
                    <tr>
                      <td colspan="2" class="noticiatexto"><br /><span><? echo $r['texto']; ?></span></td>
                    </tr>
                    <tr>
                      <td colspan="2" align="right"><br />
                        <a href="novedades.php" class="enlace_b" style="font-weight: bold; font-family: Verdana, Geneva, sans-serif; font-size: 11px;">Volver</a></td>
                    </tr>
                  </table>
                  <br /></td>
              </tr>
            </table></td>
            <td width="304">&nbsp;</td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td height="55" background="images/body 02 novedades.jpg">&nbsp;</td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>


Iniciar sesión:
Código PHP:
<?
    
if($_GET["errorusuario"] == 1)
    {
    
$mensaje "<td colspan=\"2\" align='center'><b><font color=ff0000>Datos incorrectos.</font></b></td>";
    }
        elseif(
$_GET["errorusuario"] == 2)
        {
        
$mensaje "<td colspan=2 align=center><b><font color=ff0000>Para ingresar a la página de consultas, inicie sesión o registrese.</font></b></td>";
        }
            else
            {
                
$mensaje "<td colspan=2 align=center ><b>Introduzca datos de acceso.</b></td>";
            }
?>

<body bgcolor="ebebeb" leftmargin="0" marginwidth="0">
<table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="49" background="images/headeriniciarsesion.jpg">&nbsp;</td>
  </tr>
</table>
<table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="32" background="images/menuregistro.jpg"><table width="550" border="0" align="center" cellpadding="0" cellspacing="0" class="shadow">
      <tr>
        <td width="515">&nbsp;</td>
        <td width="35"><a href="index.php">Salir</a></td>
      </tr>
    </table></td>
  </tr>
</table>
<table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="164" background="images/body 01 registro.jpg"><br>
      <table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td height="145"><form action="control.php" method="post" name="form1">
      <table width="200" border="0" align="center" cellpadding="5">
        <tr>
          <td class="textocargarnoticia">E-mail:</td>
          <td><input type="text" name="mail" id="email" size="30" style="border-width: 1px; border-style: solid; font-size:8pt; color: #666; letter-spacing : 1px;"  /></td>
        </tr>
        <tr>
          <td class="textocargarnoticia">Pass:</td>
          <td><input type="password" name="pass"  size="30" style="border-width: 1px; border-style: solid; font-size:8pt; color: #666; letter-spacing : 1px;" /></td>
        </tr>
        <tr>
          <td colspan="2"><div align="center">
            <input type="submit" name="entrar" value="Ingresar" class="boton" />
          </div></td>
        </tr>
      </table>
      <br>
      <table width="550" border="0" align="center" class="Estilo4">
        <tr>
          <td><?= $mensaje?>
          </td>
        </tr>
      </table>
      <table width="350" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td><a href="recuperar_pass.php" class="enlace_d">No recuerdo mi contrase&ntilde;a</a> <span style="font-weight: bold; font-size: 12; color: #CCC;">-</span> <a href="registro.php" class="enlace_d">Todav&iacute;a no estoy registrado</a></td>
        </tr>
      </table>
        </form></td>
      </tr>
    </table></td>
  </tr>
</table>
<table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="75" background="images/body 02 registro.jpg">&nbsp;</td>
  </tr>
</table>
<form action="control.php" method="post">
</body>
</html>

Control.php (donde se verifica la sesión iniciada)
Código PHP:
<?
$mail 
$_POST["mail"];

    include(
"admin/config.php");
    
    
$link mysql_connect($servidor$usuario$pass);        
        
    
$bd mysql_select_db($basedato$link);
    
    
$sql "SELECT * FROM usuarios WHERE mail='" $_POST['mail'] . "' 
                    AND pass='" 
$_POST['pass'] . "'"
    
    
$resultado mysql_query($sql$link);
    
  if(
mysql_num_rows($resultado)!=0)
   {
     
session_start();
     
$_SESSION["validar"]= "autorizado";
     
$_SESSION["usuario"] = $mail;
     
header ("Location: index.php");
   }
    else 
   {
    
header("Location: iniciar sesion.php?errorusuario=1");
    }     

   
mysql_free_result($resultado);
   
mysql_close($link);
?>

Como dije antes, el nombre de usuario/mail se modifica solo a "root" cuando se entra en la sección de noticia completa (link desde la sección novedades), y luego desde esta, cuando se quiere cambiar hacia cualquier otra sección, ahí es exactamente donde sucede.

Espero que puedan darme una solución, parece ser algo simple, pero me esta haciendo dar muchas vueltas innecesarias, jajajaja.
Gracias de antemano.

Un abrazo.

<< niko >>
  #3 (permalink)  
Antiguo 26/07/2011, 04:03
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Problema con sesiones!

Prueba a añadir session_start(); también al principio de la página del visor de novedades. Si sigue sin funcionarte, imprime al principio de cada página, después de iniciar la sesión la variable completa con var_dump($_SESSION), así verás donde se cambia exactamente.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #4 (permalink)  
Antiguo 26/07/2011, 08:18
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 13 años, 5 meses
Puntos: 56
Respuesta: Problema con sesiones!

Recuerda en php siempre <?php ?> y no asi <? ?>
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #5 (permalink)  
Antiguo 26/07/2011, 11:52
Avatar de NnikoO  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario
Mensajes: 245
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema con sesiones!

Hola, gracias por responder, pero no, nada pasa, sigue igual. Hasta intente hacer el sistema de noticias sin emplear el iframe, conectando con la base y mostrando directamente desde la seccion novedades, pero todo sigue igual.

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 14:46.