Foros del Web » Programando para Internet » PHP »

Problema con sesiones: SOLUCIONADO!

Estas en el tema de Problema con sesiones: SOLUCIONADO! en el foro de PHP en Foros del Web. ¡Hola chicos!! Siento daros tanto la tabarra ultimamente, pero estoy encallada en una tontería y no hay manera de salir de la situación. Os cuento, ...
  #1 (permalink)  
Antiguo 28/05/2010, 05:28
 
Fecha de Ingreso: noviembre-2006
Ubicación: Barcelona, España
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 0
Problema con sesiones: SOLUCIONADO!

¡Hola chicos!!

Siento daros tanto la tabarra ultimamente, pero estoy encallada en una tontería y no hay manera de salir de la situación. Os cuento, tengo una pagina que tiene un formulario y que se llama a ella misma generando una galería de fotos mediante una función que recibe los parámetros del formulario mediante get.

Evidentemente es una galeria que consta con control de acceso, por tanto empiezo la pagina como siempre con un session_start() y el isset de la session de siempre. Hasta ahi todo bien, cuando accedo dentro del formulario de busqueda por mucho que de al f5 siempre está dentro de la session. El problema viene cuando doy a enviar que en la galeria laprimera vez si me coje la sessión pero a la que le doy f5 o voy a otra página tanto del menú como de la paginación se pierde la session y me pide que me loguee de nuevo. ¿Sabeis porqué puede ser?

Muchas gracias de antemano!

Última edición por edochan; 28/05/2010 a las 08:57
  #2 (permalink)  
Antiguo 28/05/2010, 05:35
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Problema con sesiones.

Que tal, podrias poner el codigo para que podamos ayudarte?
  #3 (permalink)  
Antiguo 28/05/2010, 05:47
 
Fecha de Ingreso: noviembre-2006
Ubicación: Barcelona, España
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con sesiones.

Os dejo el código a ver que veis.

Esto sería el generador de galerias:

Cita:

function generar_galeria($link,$listaInicio,$registrosPagin a){
//---------RECOGE LA FECHA BY GET -----------//
$day=$_GET['d'];
$month=$_GET['m'];
$year=$_GET['y'];
//---paginación---------//
$select_all="Select * from imagenes where fecha like '%".$year."-".$month."-".$day."%'";
$res=mysql_query($select_all);
$total_registros=mysql_num_rows($res);
$paginas=ceil($total_registros/$registrosPagina);
//------SELECT----------//
$select="select * from imagenes where fecha like '%".$year."-".$month."-".$day."%' ORDER BY fecha LIMIT $listaInicio, $registrosPagina" ;
$resultado=mysql_query($select);
$existe=mysql_num_rows($resultado);
if($existe!=0)
{
echo "<table border='1' id='sospechosos'>";
$i=1;
echo "<tr>";
while($row=mysql_fetch_array($resultado))
{
$mod=$i%4;

if($mod!=0)
{
echo "<td><img src='".$row['ruta'] .$row['nombre']."'></td>";
}
else
{
echo "</tr>";
echo "<tr>";
}
$i+=1;
}

echo "</table>";


}
else
{
echo "<table id='sospechosos2'>";
echo "<tr>";
echo "<td>*NO HAY REGISTROS CON ESTAS FECHAS*</td>";
echo "</tr></table>";
}
//array para return de paginacion
$parametros[]=$paginas;
$parametros[]=$day;
$parametros[]=$month;
$parametros[]=$year;

return $parametros;

}
Esto sería la página:

Cita:
<?php
session_start();
?>
<html>
<head>
<title>BUSQUEDA DE FOTOS POR FECHA </title>
<link href="estilo_vigilancia.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="head">
<img src="eco_sYS2.jpg"/>
</div>
<?php
include ("files01.php");
$link=conexion();
if(!isset($_SESSION['id']))
{
echo "no hay sesion";
//header("Location:index.php?redirect=".$url);
}
else
{
//echo "<pre>";
//var_dump($_SESSION);
//echo "</pre>";
if(!$_GET['buscar'])
{
?>
<div id="formulario">
<table id="formu">
<tr>
<form action="frmfecha.php" method="get">
<td>DIA:</td><td><input type="text" name="d" class="form" value=<?echo date("d")?> ><font color="red">*DD</font></td>
</tr>
<tr>
<td>MES:</td><td><input type="text" name="m" class="form" value=<?echo date("m")?> ><font color="red">*MM</font></td>
</tr>
<tr>
<td>ANY:</td><td><input type="text" name="y" class="form" value=<?echo date("Y")?> ><font color="red">*YYYY</font></td>
</tr>
<tr>
</td><td><input type="submit" name="buscar" value="-Buscar-" class="form"></td>
</tr>
</form>
</table>
</div>
<br>
<div id="fotter">
TRABAJO CREADO POR: CARLA, OSCAR Y ELENA <b>|</b> PARA + INFORMACIoN O PARA QUE OS CREEN UNA CUENTA ACCEDER AQUI
</div>
<?
}
else
{
$_SESSION['id']=$_GET['session'];
echo $_SESSION['id'];
$day=$_GET['d'];
$month=$_GET['m'];
$year=$_GET['y'];
$registrosPagina=10;
if (!isset($_REQUEST['p'])) {
$pagina = 1;
}
else{
$pagina = $_REQUEST['p'];
}

if($pagina == 1)
{
$listaInicio = 0;
}
else
{
$listaInicio = $registrosPagina * ($pagina -1);
}
echo "<br>";
echo "<br>";
echo "<div id='info'>Fotos del dia: <u>".$day."-".$month."-".$year."</u></div>";
include ("menufrmfecha.php");
echo "<br>";
echo "<br>";
$retorno=generar_galeria($link,$listaInicio,$regis trosPagina);
$paginas=$retorno[0];
$day=$retorno[1];
$month=$retorno[2];
$year=$retorno[3];
if ($paginas!=0)
{
echo "<div id='paginacion'>";
echo "<br>";
echo "<br>";
$paginaAnterior = $pagina - 1;
$paginaSiguiente = $pagina + 1;
if ($paginaSiguiente> $paginas)
{
$paginaSiguiente -= 1;
}
if ($paginaAnterior <1)
{
$paginaAnterior += 1;
}
//Pagina Anterior
echo "<a class='paginacion' href='frmfecha.php?d=".$day."&m=".$month."&y=".$ye ar."&p=$paginaAnterior'><<</a>";
//Paginas existentes
for ($i = 1; $i <= $paginas; $i++)
{
echo "<a class='paginacion' href='frmfecha.php?d=".$day."&m=".$month."&y=".$ye ar."&p=".$i."'>".$i."</a>";
}
//Pagina Siguiente
echo "<a class='paginacion' href='frmfecha.php?d=".$day."&m=".$month."&y=".$ye ar."&p=$paginaSiguiente'>>></a>";
echo "</div>";
echo "<br>";
}

}
}
cerrar_conexion($link);

?>
</div>
</body>
</html>
La verdad es que no sé que puede ser. He intentado pasarle la session id por el formulario como Hidden incluso pasarselo a la función o hacer la galeria en otra página pero me pasa lo mismo en cualquier lugar....
  #4 (permalink)  
Antiguo 28/05/2010, 07:33
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Problema con sesiones.

Hola.

Una cosa, ¿ la página frmfecha.php comienza con session_start(); ?

Sabes que tienes que ponerlo en todas las páginas para recuperar los valores de las sesion ¿no?

Saludos.
  #5 (permalink)  
Antiguo 28/05/2010, 07:40
 
Fecha de Ingreso: noviembre-2006
Ubicación: Barcelona, España
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con sesiones.

si si, de hecho está puesto en el código que está escrito.

edito: Incluso en la pagina de funciones de la galeria, que es una pagina php donde se incluyen todas las funciones está puesto por si no llegara.
  #6 (permalink)  
Antiguo 28/05/2010, 08:00
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Problema con sesiones.

que te muestra : var_dump($_SESSION); ?

Es raro que se pierda la variabla de session estando el session_start...
  #7 (permalink)  
Antiguo 28/05/2010, 08:21
 
Fecha de Ingreso: noviembre-2006
Ubicación: Barcelona, España
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Problema con sesiones.

Ayer ya probé lo del var_dump y bueno cuando se logueaba en el formulario de busqueda por mucho que daba f5 me salia el usuario y su rol que son mis variables de sesion excepto cuando iba a la galeria y daba f5 que se me volvia al index y con el var dump a cero. Lo pongo antes y despues de la llamada al formulario pero no sé porque al generar la galeria por algun lado se pierde la sessión...nunca me habia pasado con otros proyectos.


EDITADO: solucionado.

Última edición por edochan; 28/05/2010 a las 08:57

Etiquetas: sesiones, solucionado
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 23:10.