| |||
Sesiones Y Ventanas Emergentes. Un saludo para los participantes de este foro. Esta es mi primera pregunta al foro. Quería saber si pueden ayudarme con esta duda: ¿Cómo mantener la sesión al abrir ventanas emergentes? He observado que al abrir una ventana emergente (con javascript) se genera una nueva sesión PHP. Tanto en la página principal como en la ventana secundaria (emergente) tengo colocado la función session_start(). Pero cuando se abre la ventana emergente se genera una nueva sesión, y por tanto, no se puede tener acceso a las variables de sesión creadas en la página principal con $_SESSION[‘nombreVariable’] = valor. Digo que se genera una nueva sesión porque cuando recupero el Id de sesión con la función session_id() obtengo valores diferentes en la ventana emergente. ¿Es posible mantener la misma sesión que la generada en la ventana principal cuando se abren ventanas emergentes y poder tener acceso en todo momento a las variables de sesión?. Gracias. |
| |||
Re: Sesiones Y Ventanas Emergentes. Gracias Vevni por responder. Aquí te presento el código de las 2 páginas PHP que estoy intentando conectar bajo una misma sesión. Pagina1.php muestra el menú principal del sitio web. Desde aquí quiero llamar a Pagina2.php en una ventana emergente. En Pagina1.php he registrado una variable de sesión que se supone debería poder leer en Pagina2.php antes de mostrar su contenido específico. En la salida del código muestro los Id de sesión. Son diferentes en ambas páginas. ¿Por qué? ¿Puedes ayudarme? Pagina1.php
Código:
Pagina2.php<?php // Inicio la sesión. session_start(); // Registro una variable de sesión para probar si puedo leerla en la ventana emergente. $_SESSION['usuarioValido'] = "SA2008"; ?> <html> <head> <script language="javascript" type="text/javascript"> var ventana = false; function AbrirVentana(pagina, nombreVentana, atributos) { if (typeof ventana.document == "object") { ventana.close(); } ventana = window.open(pagina,nombreVentana,atributos); } </script> </head> <body> <?php // Verifico cual es el Id de sesión con el cual estoy trabajando: echo " El Id de sesión actual es: ".session_id(); echo " La variable de sesión tiene este valor: ".$_SESSION['usuarioValido']; echo "<br>"; ?> <table border="1" bordercolor="#999999" cellpadding="10" cellspacing="0" bgcolor="#e9e9e9"> <caption><h4 style="color:#0000FF;">Menu Principal </h4></caption> <tr> <td><a href="javascript:AbrirVentana('Pagina2.php','ventanaEmergente','width=500 height=500');">Ir a página 2</a></td> </tr> <tr> <td><a href="Pagina3.php" >Ir a página 3</a></td> </tr> <tr> <td><a href="Pagina4.php">Ir a página 4</a></td> </tr> </table> <br> <br> </body> </html>
Código:
<?php session_start() ?> <html> <head> <title>Pagina 2</title> </head> <body> <?php echo "<br>El Id de sesión que estas utilizando es: ".session_id(); echo "<br>"; if (isset($_SESSION['usuarioValido'])) { echo "Estas registrado como: ".$_SESSION['usuarioValido']."<br>"; } else { header("location:login.php"); // Si no hay variable de sesion me debería enviar a una pagina de Login para iniciar la sesión. } ?> Aqui viene el contenido especifico de la Pagina 2. </body> </html> |