Foros del Web » Programando para Internet » PHP »

problema con variables de sesion

Estas en el tema de problema con variables de sesion en el foro de PHP en Foros del Web. Hola nuevamente molestando, me ocurre el siguiente problema, no si no se puedo y yo lo kiero forzar o no lo estoy haciendo bien. En ...
  #1 (permalink)  
Antiguo 11/09/2004, 13:33
 
Fecha de Ingreso: noviembre-2003
Ubicación: Veracruz
Mensajes: 131
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta problema con variables de sesion

Hola nuevamente molestando, me ocurre el siguiente problema, no si no se puedo y yo lo kiero forzar o no lo estoy haciendo bien.

En mi pagina index.php tengo el siguiente codigo:
<?php
session_start();
if (isset($_session['cat_nom0'])){
session_unregister('cat_nom0');
}
?>


y en otra pagina (categorias.php).

realizo un query para obtener una categoria principal y guardarla en la variable de sesion, con el fin de que desde el index seleccione una categoria y en la pagina categorias.php me imprima una leyenda con la categoria que seleccione y realizo esto:

<?php
if (!(isset($_SESSION['nom_cat0']))){
$_SESSION['nom_cat0']=$row_mainCat['VcNom45'];
}
?>

podrian ayudarme con esto, o despejar mi cabeza diciendome si se puede o no??

Gracias.

Saludos
  #2 (permalink)  
Antiguo 11/09/2004, 13:49
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 15 años, 4 meses
Puntos: 2
Si colocas el código completo podríamos ayudarte mejor. Si explicas mejor tu inconveniente también.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #3 (permalink)  
Antiguo 12/09/2004, 10:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio .. si usas los arrays superglobales: $_SESSION .. para trabajar con sesiones NO puedes usar session_unregister(), deberías usar unset()

www.php.net/session

Ahora . .lo que no veo sentido es lo que haces en tu index.php ..
"Si está definida tal variable de sesión .. pretendes eliminarla/borrarla/dejarla sin valor"...

Si miras a una variable de sesión como un array que es .. podrás ver que no es necesario que la "borres" .. tan sólo asigna su valor cuando corresponda.

Lo que no queda claro es el procedimiento que usas para:_
definir tu variable de sesión -> script que lo tiene que leer.

Recuerda también que las sesiones No quedan disponibles hasta la próxima recarga de página o "petición" (pasar de una a otra por un link, redireccionamiento .. etc). Es decir .. No puedes definir un valor de una variable de sesión y pretender leer su valor en el mismo flujo de código del script sin antes haber redireccionado (aunque sea a si mismo) o a otro.

Un saludo,
  #4 (permalink)  
Antiguo 12/09/2004, 11:26
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 15 años, 4 meses
Puntos: 2
Tal como dice Cluster, usa los arrays superglobales, en este caso $_SESSION. Trabaja todo como si fuesen arrays y verás el código mucho más facil. Solo tienes que usar session_start() y definir tus arrays de de sesiones. NO tienes por qué usar session_unregister() ni nada similar, es muchísimo más sencillo con el superglobal.

Un saludo y cualquier cosa pregunta!
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #5 (permalink)  
Antiguo 13/09/2004, 12:38
 
Fecha de Ingreso: noviembre-2003
Ubicación: Veracruz
Mensajes: 131
Antigüedad: 14 años, 1 mes
Puntos: 0
ok, tomare en cuenta lo que me dicen, muchas gracias.

Ahora les explico porke es ke hago eso, tengo una pagina (categorias.php) en la que recibe como parametro el id señalado en la pagina index.
Lo que quiero hacer es un trailer que se muestre en la pagina de categorias mas o menos de como ha navegado por esa pagina, el detalle es la categoria pricnipal tiene subcategorias y asi sucesivamente, mas o menos aki les va un ejemplo:

en mi pagina index, selecciono la categoria turismo (id=1) y debe irse a categorias.php?id=1 y me debe mostrar en el trailer |Home|Turismo|
y abajo del trailer muestro las subcategorias de turismo: Hoteleria, Ruinas, Camping, etc...
y cuando selecciono una de ellas se debe agregar al trailer pero en esa misma pagina es decir se actualiza la pagina de categorias, solo que ahora el trailer contiene lo siguiente: |Home|Turismo|Hoteleria|

No se si me puedan ayudar con esto.
Gracias
Saludos
  #6 (permalink)  
Antiguo 13/09/2004, 16:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. si es así, guardate los "id" (de esas categorías) en un array y propaga dicho array sobre una variable de sesión .. Luego es cosa de ller tu array (con un foreach() por ejemplo) para representar en forma "gráfica" ese "trailer" que mencionas.

Código PHP:
<?
session_start
();

if (isset(
$_SESSION['trailer'])){
    
$_SESSION['trailer']= array_push($_GET['id']);
} else {
    
$_SESSION['trailer'] = array();
}

foreach(
$_SESSION['trailer'] as $tramo){
echo 
"|<a href=\"categorias.php?id=".$tramo.""></a>|";
}
?>
Supongo que de alguna otra forma relacionas tus categorías con las subcategorías... En el ejemplo sólo guardo los ID (y los "linkeo" a tu categorias.php) ... si necesitas el nombre+el ID de esa categoría usa un array bidimensional o dos unidimiensionales ... o haces una consulta a tu BD por ese ID para obtener el nombre...

Un saludo,
  #7 (permalink)  
Antiguo 13/09/2004, 19:02
 
Fecha de Ingreso: noviembre-2003
Ubicación: Veracruz
Mensajes: 131
Antigüedad: 14 años, 1 mes
Puntos: 0
Gracias, me sirvio su ayuda

Gracias mis amigos, utilize su consejo aunque con algunas variantes de ideas, pero el resultado fue bueno se los agradezco.

Reciban un saludo cordial desde Veracruz, México
  #8 (permalink)  
Antiguo 13/09/2004, 20:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías indicar como quedó al final el tema (así nos servirá a todos).

Un saludo,
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 11:18.