Foros del Web » Programando para Internet » PHP »

Sesiones

Estas en el tema de Sesiones en el foro de PHP en Foros del Web. Hola, Quisiera hacerles una pregunta, estoy manejando sesiones y variables de sesion, quisiera saber si abro una ventana secundaria la sesion continua???? por q no ...
  #1 (permalink)  
Antiguo 15/02/2003, 10:22
 
Fecha de Ingreso: noviembre-2002
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 15 años, 1 mes
Puntos: 0
Sonrisa Sesiones

Hola,

Quisiera hacerles una pregunta, estoy manejando sesiones y variables de sesion, quisiera saber si abro una ventana secundaria la sesion continua???? por q no me estan apareciendo los valores que estoy buscando, si no cual podria ser mi error necesito darle nombre a la session???? y cuando llame la ventana secundaria hacer referencia la nombre de la sesion.

Saludos, y gracias por la ayuda.
  #2 (permalink)  
Antiguo 15/02/2003, 10:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Debes de propagar el SID (identificador Unico de session) en todas las paginas q necesites de uso de la session activa ..

Si propagas el SID en modo automático y NO usas propagacion a su vez en una cookie (o el cliente no las acepta) .. Deberas de propagar el SID a mano a la hora de abrir tu "ventana secundaria" (supongo q te referiras a un "popup" con un window.open de javascript?) ...


Para propagar SID en modo manual deberias generar los links q lanzas la ventana secundaria via:

Código PHP:
echo "<a href=\"pagina.php?tusvariables=valores&".session_name()."=".session_id()."\">Bla blabla</a>"
Como veras se añada el PHPSESSID o el nombre q tengas tu session + el SID tipo: 3as33g3gaga34vndsgfg. Aplicalo en tus funciones q lanzes tus popup..

Un saludo,

pd: .. visita el manual oficial de PHP y mira la teoria sobre propagación del SID . o bien busca en el foro .. de vez en cuando se habla de eso.
  #3 (permalink)  
Antiguo 15/02/2003, 11:11
 
Fecha de Ingreso: noviembre-2002
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 15 años, 1 mes
Puntos: 0
Gracias Cluster por la respuesta,

el propagar la sid automaticamente te refieres a tener la variable

session.auto_start activada on,

te comento que en mi servidor local (apache) si funciona y me envia los valores sin ningun problema, pero a la hora de subirlo a mi web hosting donde quiero que funcione el codigo no me envia las variables de session y esstuve checando mi configuracion con la de el y la variable "session.auto_start" la tiene desactivada off, podria ser este el problema si asi es que implicaciones me traeria activarlo. si no es esto como podria propagar automaticamente el SID,

En mi ventana actual llamo dos archivos graficas1.php y graficas2.php los cuales me grafican un array de valores que les estoy enviando por una variable de session (estoy utilizando chartdirecto 2.5 no se si lo hayas utilizado en algun proyecto).


Pongo un pedazo del codigo:

<?php
$_SESSION ['fechas'] = $tested_array;
?>

<tr>
<td><img src=" http://guillerm/phpdemo/graficas1.php"></td>
</tr>

Este codigo esta en mi session actual pero como ves hace referencia a otro archivo.


Saludos,,
  #4 (permalink)  
Antiguo 15/02/2003, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El session.auto-start .. lo único que hace es iniciar siempre una session .. por lo tanto puedes omitir el uso de session_start() en todos los scritps q necesiten de leero o escribir en una session.

En tu caso (y recomendable usarlo siempre) debes de iniciar el uso de las sessiones con session_start() SOLO donde necesites usar sesiones .. y no para todo el sitio como lo hace la directiva mencionada a ON .. pues como bien dices esa directiva en el q te funciona esta a ON y en el q no a OFF ..

Código PHP:
<?
session_start
(); // SIempre q uses sesiones en el script en curso.
$_SESSION ['fechas'] = $tested_array;
?>
Lo q tienes q revisar son las directias:
session.use_trans_sid = 1 (o a ON)

Pues estas propagando el SID en modo automatico ( o por lo menos así lo asumes pues en tus links NO estás indicandolo).

Tambien revisa:
session.use_cookies = 1

Esa directiva hace q el SID se propage en una cookie (usado junto con la anterior directiva a 1 ..) hace q no se vea el SID en el URL (pues se guarda en una cookie en el cliente) .. Esto ocasiona que los clientes q no acepten cookies no van a perder el SID y no va actuar tu lógica q use sesioes pues se iniciará una session cada vez y no se continuará la de la pagina q lo llama.

Todas estas directivas se pueden forzar a trabjar de la manera q tu consideres oportuno en tiempo de ejecucion o en .htaccess del servidor (revisa el foro .. no hace mucho se hablo de lo mismo).

Otro detalle .. es probable q cuando te funcione las sesiones (temas de progpagacion del SID) ... no te funcione correctametne guardar un array como lo estas haciendo .. pues hay q serializar los datos del array antes de guardarlos en la session y des-serializarlo cuando los obtengas .. (te aviso ya por si tuvieras problemas .. funciones serialize() y unserialize() ..)

Un saludo,

Última edición por Cluster; 15/02/2003 a las 11:28
  #5 (permalink)  
Antiguo 15/02/2003, 13:11
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
yo con
Código PHP:

ini_set
("session.use_cookies","0");
ini_set("session.use_trans_sid","1"); 
Me ahorre todos los problemas de propagar la session a mano.

Yo tambien tengo un javascript para una pop-up donde necesito la session y en sese archivo con solo poner

session_start();
y los ini_set me toma la session sin necesidad de programarla a mano.


Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #6 (permalink)  
Antiguo 16/02/2003, 14:12
 
Fecha de Ingreso: noviembre-2002
Ubicación: Guadalajara
Mensajes: 14
Antigüedad: 15 años, 1 mes
Puntos: 0
Gracias a todos por la Respuesta.... las dos formas me funcionaron....
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 01:06.