Foros del Web » Programando para Internet » PHP »

Duda existencial con SESIONES

Estas en el tema de Duda existencial con SESIONES en el foro de PHP en Foros del Web. Hola a todos, Quiero filtrar los resultados de una relación mediante un checkbox traspando su valor por una variable de sesión... Ayer me estube peleando ...
  #1 (permalink)  
Antiguo 25/07/2008, 03:53
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Duda existencial con SESIONES

Hola a todos,

Quiero filtrar los resultados de una relación mediante un checkbox traspando su valor por una variable de sesión... Ayer me estube peleando un rato, ya que soy más amante de las cookies de lo que tendria que ser; pero no fui capaz de dar con la solución ya que al paginar los resultados o actualizar la página, se perdia el valor de la variable... Con la peculiaridad de que tan solo deseo trabajar con un CHECKBOX y que el mismo no tenga definido ningún valor, salvo el checked claro esta...

Ahora, en el trabajo; se me ha iluminado parcialmente la bombilla... o eso creo, pero no tengo claro si así estaría bien estructurado o si contemplaria correctamente cualquier cambio, se valide o no el formulario con el traspaso de la variable...

Código PHP:
<?php
session_start
();
if(!isset(
$_SESSION["traspaso"])){
  
session_register("traspaso");
  
$_SESSION["traspaso"]="todos";
}else{
  if(isset(
$_POST["variable"])){
     
$_SESSION["traspaso"]="algunos";
  }
}
?>
Esto sería correcto o continuaré perdiendo el valor de la variable de sesión si no valido el formulario?

Gracias y saludos!
  #2 (permalink)  
Antiguo 25/07/2008, 04:04
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Duda existencial con SESIONES

aparentemente esta bien, deberias ponerlo en practica y ver que resultado da
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 25/07/2008, 04:06
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Respuesta: Duda existencial con SESIONES

Hola emiliodeg,

El problema es que tengo esa extraña sensacion de que en algún momento comprendido entre las 00h y las 01:30h de esta madrugada llegue a esta conclusion... xD por eso aún dudo de que el flujo de identificaciones de contenido de las variables tanto de sesion como enviadas por POST sea el mejor o por lo menos, sea correcto...

En fin, nada... tendremos que esperar a la tarde para cercionarnos de que funciona correctamente ;)

Saludos y gracias
  #4 (permalink)  
Antiguo 25/07/2008, 04:12
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Duda existencial con SESIONES

Parece que está bien.

Si la Session no existe, la creas y le pones Todos. Y si la sessión existe Y el formulario ha sido enviado, le pones Algunos.

Aparentemente está bien, si no te funciona así y la Session te sigue perdiendo el valor, prueba a poner el session_register("traspaso") debajo del session_start(), fuera del if.

Y si sigue sin ir, quita el session_start(), ya que en principio o pones session_start() o pones session_register.. Pero bueno, igual no pasa nada por poner las 2, tu sólo quita el session_start() en caso que siga fallándote lo de Session)

EDITO: Joder, segunda vez que posteo cuando ya ha posteado gente.. Eso me pasa por abrir todos los hilos y después ir mirando, a partir de ahora actualizaré antes de postear xDD
  #5 (permalink)  
Antiguo 25/07/2008, 12:16
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Respuesta: Duda existencial con SESIONES

NO TIRA. Acabo de probarlo y nada de nada... O bien mantiene la variabel de session con un mismo valor o bien la pierde... la verdad es que es un poco extraño... Si pongo en practica tal cual esta el ejemplo:

if(!isset($_SESSION["traspaso"])){
session_register("traspaso");
$_SESSION["traspaso"]="todos";
}else{
if(isset($_POST["variable"])){
$_SESSION["traspaso"]="algunos";
}
}

Muestra siempre algunos, o sea, que por más que desactive el checkbox y lo valide, mantiene el mismo valor la variable de session... ¿POR QUE?

A ver si podéis echarme una manita... por que ya no se que hacerle al tema... aissss

Saludos!
  #6 (permalink)  
Antiguo 25/07/2008, 13:18
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda existencial con SESIONES

Pues me voy a unir a la 'duda existencial' pero por desgracia no para resolver la duda sino para sumar otra...

¿Sabeis si se puede guardar en una variable de sesión varios datos? como si fuera un vector. Es que según se marquen o no unos checkbox en mi aplicación, estoy almacenando los identificadores en un vector, el problema que tengo es que como en la página se hacen búsquedas, cada vez que se hace una búsqueda nueva, se borran los identificadores de los chekbox que se han pulsado hasta entonces y estoy pensando usar para ello una variable de sesión. (son muchos los checkbox y no son un número fijo)

Muchas gracias
  #7 (permalink)  
Antiguo 28/07/2008, 03:35
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Duda existencial con SESIONES

Cita:
Iniciado por popobcn Ver Mensaje
if(!isset($_SESSION["traspaso"])){
session_register("traspaso");
$_SESSION["traspaso"]="todos";
}else{
if(isset($_POST["variable"])){
$_SESSION["traspaso"]="algunos";
}
}

Muestra siempre algunos, o sea, que por más que desactive el checkbox y lo valide, mantiene el mismo valor la variable de session... ¿POR QUE?
Pues porque le estás diciendo que si no existe la session le ponga "todos", pero luego le dices que si existe, y han mandado el formulario (indiferentemente de lo que hayas hecho con el checkbox) le ponga "algunos". Por lo tanto es normal que siempre salga "algunos" ya que una vez la sesión existe y le mandas cualquier opción del formulario, le mete "algunos".

Tienes que ponerlo igual pero usando el $_POST de checkbox, y según si está activado o no, le pones "algunos" o "todos". Es decir, quedaría así:

Código PHP:
if(!isset($_SESSION["traspaso"])){ 
     
session_register("traspaso"); 
     
$_SESSION["traspaso"]="todos"
}else{ 
     if(isset(
$_POST["variable"])){
          if(isset(
$_POST["checkbox"])){ //o como se llame tu checkbox, la propiedad name="" del <input>
               
$_SESSION["traspaso"]="algunos";
          }
          else{ 
//Si no está marcado el checkbox
               
$_SESSION["traspaso"]="todos";
          }
     } 

Salut
  #8 (permalink)  
Antiguo 28/07/2008, 04:24
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Respuesta: Duda existencial con SESIONES

Kamea!!!!

Jajajajajajaja la verdad es que ya estaba volviendome loco con el tema... al final llegue a tal punto que hice un cambio de checkbox por radiobuttons... en definitiva, ahora funciona perfectamente empleando exactamente el mismo código que has propuesto xD

En fin... si es que al final, le pillaré el gustillo a las variables de sesion ;) :) jejejeje... De hecho, ahora me he liado un poco más con el tema de las sesiones, ya que estoy intentando crear un array con nombres de usuarios con el fin de que antes de mostrar los datos en una página, no se muestre ninguno de los visitados anteriormente...

Pero esto ya... es otra história ;) :D

Gracias y saludos :)
  #9 (permalink)  
Antiguo 28/07/2008, 05:16
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Duda existencial con SESIONES

De nada, me alegro que se te haya solucionado ;)

En cuánto a scorm, creo que sí que puedes usar Sessiones como si fueran arrays, es decir: $_SESSION["nombre"][posiciones_array].


Ejemplo:

$_SESSION["nombre"][0]="Pau";
$_SESSION["nombre"][1]="Meri";
$_SESSION["nombre"][2]="Damià";
etc.

No sé si es eso más o menos lo que preguntabas
  #10 (permalink)  
Antiguo 28/07/2008, 08:26
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Respuesta: Duda existencial con SESIONES

scorm,

Con el fin de gestionar de forma incremental la posicion de la variable de session del tipo array, puedes montar tambien un contador que vaya incrementando automaticamente su valor en caso de que detecte que la variable de session esta creada.

Vamos, que empleando el "tipico" ejemplo que encontramos en cualquier resultado de Google respecto al uso y manejo de sesiones (Vamos, el contador) y con lo que nos brinda Kamae, en un plis plas tienes un array creado y listo para trabajar con el.

Kamae & resto :)
A mi la única duda que me asalta con las variables de session, son sus limitaciones, si existen. Como comentaba, estoy sopesando cambiar el sistema de gestion de contenidos de una seccion de una página y no tengo claro si emplear un array en una variable de session puede soportar todo lo que le quiero meter... (o lo que quieran meterle xD )

Por ejemplo,
1. ¿puedo definir un array en una variable de session e introducir de 300 o 500 registros?
2. Como puede afectar esta carga de datos en una variable de session en la carga de la página?

Gracias y saludos :)
  #11 (permalink)  
Antiguo 29/07/2008, 03:31
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Duda existencial con SESIONES

Mmm ahí yo ya sí que no sé, nunca he probado a hacerlo, pero vaya, todo es probarlo. Lo de meterle un array de 500 posiciones seguramente funcionará, no creo que esté limitado, pero es fácil saberlo, pruébalo :P

No creo que sobrecargue mucho más la web que si usaras una variable normal, siempre y cuando hagas un session_register() de las sessiones que necesites en cada página, en vez de hacer un session_start() que supuestamente te las inicializa todas (algo de lo que se puede prescindir porque no en todas las páginas usarás todas las sessiones, imagino).

Si los registros vienen de una base de datos, haz la prueba y genéralo de las 2 formas (haciendo una consulta y guardándola en sesión, y la otra ir ejecutando las consultas en cada página) y mira a ver. Yo creo que no habrá casi diferencia entre un modo y otro porque las bases de datos también tienen caché de consultas (almenos MySQL, imagino que SQL también).

Saludos
  #12 (permalink)  
Antiguo 29/07/2008, 04:53
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Respuesta: Duda existencial con SESIONES

Oido cocina!!!

Hoy haré una adaptación de la seccion en "integración" y hare unas cuantas pruebas de estres, a ver que tal responde el tema... Os comento cosas, por que para mi es la primera vez que veo una aplicación del uso de variables de SESSION con ua volumetria de datos tan mmmmmmm elevada?!

Saludos y gracias :)
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 22:03.