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 a todos! En mi página, puedo hacer una búsqueda de todos los elementos que hay y en la página de resultados, se puede entrar ...
  #1 (permalink)  
Antiguo 04/09/2008, 07:29
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
problema con sesiones

HOla a todos!

En mi página, puedo hacer una búsqueda de todos los elementos que hay y en la página de resultados, se puede entrar en una ficha. Una vez en la ficha, aparecen en la parte superior unas flechas para poder ir a la ficha del siguiente o anterior elemento que aparecían en el resultado.
Para ello, lo que hago es cuando realizo la búsqueda, meto los id, de los elementos en un array en el orden que me aparecían, así seguirá el mismo orden. Luego meto el array en una variable de session y en cada ficha hago un search array para ver en que posición está la ficha actual y para saber a qué ficha tiene que ir dandole a siguiente o anterior. el problema es que a veces (pasa aleatoriamente) no sé si se pierde la sesion o que pero me sale un error como si no existiera la variable.

Alguien sabe porqué podría ser? Hay alguna manera más eficaz? Estoy intentando buscar el porqué del problema y no lo encuentro!
  #2 (permalink)  
Antiguo 04/09/2008, 07:43
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: problema con sesiones

si colcas el codigo creo que podemos ver cual es el problema amig@!

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 04/09/2008, 07:54
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: problema con sesiones

No creo que sea problema del código porque funciona un rato hasta que se vá. Más bien creo que es problema de que por algún motivo se pierde la sesion. Hay alguna manera de poder pasar la variable por páginas sin sesiones, de otra manera? De todas formas, ahí va:

Esto es lo que pongo justo cuando calculo el resultado de la búsqueda para crear el array con los resultados.
Código PHP:
$x=0;
while (
$rowal=mysql_fetch_array($alumnos)){
$arrayresultado[$x]="ficha-".$rowal["id_alumno"];
$x=$x+1;
}
$_SESSION["arrayresultado"]=$arrayresultado
Una vez que entro en la ficha de un alumno, puedo navegar al siguiente y al anterior. Para eso le incluyo esta parte:

Código PHP:
$arrayresultado=$_SESSION["arrayresultado"];


$pos=array_search("ficha-".$_GET["id_alumno"], $arrayresultado); // POr GET he pasado el id del alumno, y busco en qué posicion está
$actual$pos+1;
$Todos=count($arrayresultado);
$siguiente=$arrayresultado[$acutal+1];
$anterior=$arrayresultado[$actual-1];
$enlaceprimero=$arrayresultado[0];
$enlaceanterior=$arrayresultado[$pos-1];
$enlacesiguiente=$arrayresultado[$pos+1];
$enlaceultimo=$arrayresultado[$Todos-1]; 
Puedo acceder al array porque me paso la sesion por todas las páginas.
  #4 (permalink)  
Antiguo 04/09/2008, 07:57
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Si declaras el arreglo como session, creo que no tendrias que pasar esta variable de pagina en pagina, solo coloca en la primera line de la pagina session_start();

Con esto podras usar la variable de session como quieras en cualquiera parte de la pagina!

Saludos

Me inmagino que cuando le das siguiente se envia a la misma pagina, solo cambiando el valor de lo que mostraras o no?
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Última edición por GatorV; 04/09/2008 a las 09:45
  #5 (permalink)  
Antiguo 04/09/2008, 08:07
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: problema con sesiones

si yo uso modrewrite y por eso no pongo .php pero en realidad sería como si hubiese guardado esto en el array=> ficha.php?id=$rowal["id_alumno"]

en enlace siguiente tendría: ficha.php?id=X
depende de lo que toque. Luego imprimo la variable enlace siguiente que me lleva al siguiente alumno

y luego pongo eso en el link. Se carga la misma página pero en el id del alumno, lo cambia

Última edición por leeann; 04/09/2008 a las 08:20
  #6 (permalink)  
Antiguo 04/09/2008, 08:12
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: problema con sesiones

Haz intentado aumentar el tiempo de tu sesión??

http://www.forosdelweb.com/f18/aumen...73/#post985382

Aunque puede ser la lógica de tu array... descarta que sea esa directiva.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 08/09/2008, 01:31
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: problema con sesiones

¿Que quieres decir que puede que sea la lógica de mi array?

Yo más bien me inclino porque sea el tiempo de sesion, porque en cuando entro la primera vez, recorro todos los registros tras una búsqueda sin problemas. En cambio al de un rato, haciendo la misma búsqueda, me sale un error diciendo que el array no existe. A partir de ahí me sale el error más a menudo.

Para eso creo que lo mejor sería subir el tiempo de session, pero puede que me dé problemas en otros módulos? Si pongo tiempo ilimitado, la sesión cuando acaba? Al cerrar el navegador? En qué me puede afectar?

Hay alguna otra manera de pasar variables al igual que en una session sin cookies y sin tener que pasarlo por url? Si hubiese otra manera, me evitaría los posibles errores de cambiar el tiempo de las sesiones!

Última edición por leeann; 08/09/2008 a las 01:45
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 03:16.