Foros del Web » Programando para Internet » PHP »

me cierra la sesion al abrir un popup

Estas en el tema de me cierra la sesion al abrir un popup en el foro de PHP en Foros del Web. Hola Buenas tardes!! Mi problema es que mi sesion se cierra al abrir una nueva ventana con windows.open. Tengo un sistema en linea de reservaciones. ...
  #1 (permalink)  
Antiguo 03/06/2008, 16:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
me cierra la sesion al abrir un popup

Hola Buenas tardes!!
Mi problema es que mi sesion se cierra al abrir una nueva ventana con windows.open.

Tengo un sistema en linea de reservaciones. Al entrar a la pagina me pide usuario y contraseña. Valido el usuario y contraseña y agrego en una variable de sesion la clave del usuario de esto modo

$_SESSION['clave'] = $clave_usuario;

Despues de eso llamo a esta variable dentro de las otras paginas de esta manera.

$clave = $_SESSION['clave'];

Tengo puesto un isset a la variable $_SESSION['clave']; en cada pagina para validar que la variable clave ha sido declarada y ha sido iniciada y el unico lugar donde la declaro y la inicializo es cuando valido el usuario y contraseña.

Me habia funcionado bien hasta que me vi en la necesidad de abrir una nueva ventana del explorador con windows.open. Ahi es cuando empezaron los problemas.

Al momento de abrir la nueva ventana si quiero ir a otra opcion dentro de la ventana principal me saca del sistema y me pide de nuevo usuario y contraseña para iniciar sesion nuevamente.

Probe poniendo un echo session_id(); para ver que sale y me aparece el mismo id en todas las paginas que pongo, porlo que yo supuse que no se destruye la sesion sino solo la variable de sesion. Igual probe validando la sesion con session_id() y de esta manera ya no me saca del sistema, sin embargo la clave de usuario desaparece.

Me podrian ayudar explicandome porque pasa esto y que puedo hacer para que no pase?

Espero haberme explicado y de antemano gracias por su pronta respuesta
  #2 (permalink)  
Antiguo 03/06/2008, 16:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: me cierra la sesion al abrir un popup

ye creo que abrir un popup NO es el problema y no creo que lo sea....

mas bien, el problema esta en el codigo PHP que ejecuta cuando abres el popup... si lo pones quiza, te demos otra razon....

pero esto si.... a menos que con Javascript limpies las Cookies y desde PHP use Cookies para la sesion.... si, tendria sentido lo que dices... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/06/2008, 16:33
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

asi abro el popup es codigo javascript.

var opciones = "toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, width=1000, height=480, top=50, left=0";
window.open("nuevo_tras.php","",opciones);

y en la pagina nuevo_tras.php empiezo asi

<?php
session_start();
if(!isset($_SESSION['clave']))
{
echo " <script> alert('Debe de inciar una sesion');
window.close(); </script>";
exit;
}


$usuario = $_SESSION['clave'];

y luego pongo el formulario para ingresar un registro
  #4 (permalink)  
Antiguo 03/06/2008, 16:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: me cierra la sesion al abrir un popup

Prueba cambiar tu código del popup:
Código PHP:
window.open("nuevo_tras.php?<?php echo SID?>","",opciones);
Saludos.
  #5 (permalink)  
Antiguo 03/06/2008, 16:51
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

gracias por sus prontas respuestas

puse lo que me dijiste y sigue pasando lo mismo, me destruye me variable de sesion. Me fije tb que el echo SID no me arroja algo me manda nada, vacio.

Puede ser que sea alguna configuracion de php ini??
  #6 (permalink)  
Antiguo 03/06/2008, 17:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

Me acabo de dar cuenta de algo, cuando valido si el nombre de usuario y contraseña es correcta creo 2 variables de session:

Código PHP:
if($row_usuario mysql_fetch_array($res_usuario))
    {    
        
$_SESSION['clave'] = $row_usuario['clave_usuario'];
        
$_SESSION['permiso'] = $row_usuario['permisos'];
        echo 
"<script> window.location = 'inicio.php';</script>";
    } 
y la unica variable que se destruye es clave, pues si valido permiso de esta manera:

Código PHP:
session_start();

if(!isset(
$_SESSION['permiso']))
{
    echo 
"<script>    window.open('index.php','_top',''); </script>";
    exit;

no me saca del sistema pero como no tengo la clave del usuario no me permite hacer nada. Porque me estara causando problemas esa variable? Donde la destruyo para quitar esa parte?

No se si esto ayude en algo para la causa, se lo agradeceria enormente
  #7 (permalink)  
Antiguo 03/06/2008, 21:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: me cierra la sesion al abrir un popup

Mmm tienes activado el register_globals?

Saludos.
  #8 (permalink)  
Antiguo 03/06/2008, 22:23
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

Nuevo descubrimiento. En Internet explorer funciona de maravilla, pero cuando lo pruebo en mozila es cuando me empieza a generar el problema.

A que se debera?

El register global lo tengo en on, deberia cambiarlo a off??

gracias por su apoyo de verdad se los agradezco
  #9 (permalink)  
Antiguo 03/06/2008, 22:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: me cierra la sesion al abrir un popup

sabes... ahora que lo pienso tambien se puede deber al distinto comportamiento de JS en los navegadores.... intenta redireccionando sin usar Javascript.... con solo PHP puedes lograr exactamente lo mismo....

Código PHP:
header('Location: URL'); 
donde URL es ya sea... inicio.php o tu index.php, etc, etc... haber que pasa

eso en lugar de los...

Código PHP:
echo '<script>etcetera</script>'
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 03/06/2008, 22:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

Disculpa mi ignorancia pero como puedo abrir una nueva ventana con el header?.

Lo pongo asi como mencionas

header('Location: nuevo_tras.php');

y me sale un error

<b>Warning</b>: Cannot modify header information - headers already sent by (output started at (archivo.php)).

Y si solo lo pongo asi

$_SESSION['clave'] = $row_usuario['clave_usuario'];
$_SESSION['permiso'] = $row_usuario['permisos'];
header('Location: inicio2.php');

no hay diferencia me sigue sacando al abrir la nueva ventana
  #11 (permalink)  
Antiguo 03/06/2008, 22:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: me cierra la sesion al abrir un popup

mmm.... solo me referia al primer paso, creo que con el segundo si no le hallo... dices que con el IE no hay falla.... mmm, parece raro... sorry
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 03/06/2008, 22:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

Si asi es con el internet explorer no me falla funciona de maravilla, pero al momento de abrirlo con el mozila me saca al abrir la ventana, pero te digo que es xq la variable de sesion que se destruye y solo se destruye la

$_SESSION['clave'];

la $_SESSION['permiso']; queda intacta.
  #13 (permalink)  
Antiguo 03/06/2008, 23:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: me cierra la sesion al abrir un popup

haber... necesito que me re-expliques, cual es el codigo... que usas en la ventana que abres como popup con javascript... puedes poner el codigo de PHP de tal script?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 03/06/2008, 23:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

el codigo que utilizo para abrir la ventana popup es este:

Código HTML:
var opciones = "toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, width=1000, height=480, top=50, left=0";
	window.open("nuevo_tras.php","nuevo_tras",opciones);
este codigo lo tengo dentro de una funcion llamada nuevo_t la cual esta en un archivo .js llamado funciones.js.

el archivo nuevo_tras.php empieza de la siguiente manera:

Código PHP:
session_start();
if(!isset(
$_SESSION['clave']))
{
    echo 
"<script>    alert('Debe de iniciar una sesion');
                    window.close();
        </script>"
;
    exit;
}
$usuario=$_SESSION['clave']; 
luego sigue un formulario algo extenso para ingresar un nuevo registro.
y paso la variable $usuario atravez de un post a otra pagina donde guardo los datos que pongo en esta pagina. No creo q eso sea relevante, lo pongo como dato extra.

gracias por su tiempo
  #15 (permalink)  
Antiguo 03/06/2008, 23:25
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: me cierra la sesion al abrir un popup

seguro que al hacer $usuario=$_SESSION['clave']; ????? no te sobreescribe otra variable llamada $usuario ???? lo mejor en estos casos es ir imprimiendo las variables hasta dar en el punto en el cual entrega en blanco o bien cambia.....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #16 (permalink)  
Antiguo 03/06/2008, 23:38
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: me cierra la sesion al abrir un popup

Creo que ya encontre el error.

Todas las variables son unicas ya que tengo un registro de todas las que utilizo precisamente para no repetir.

pero en alguna parte del codigo tenia un http_get_vars que recibia el mismo nombre de la variable de sesion. es decir tenia esto:

$usuario = $_SESSION['clave'];

$clave = $HTTP_GET_VARS['clave'];

pense que no afectaba ya que son dos maneras de recibir los datos, pero ya me di cuenta que si afecta.

Gracias por su apoyo, exelente foro uno de mis favoritos, me han sacado de varios problemas y este no fue la expecion. Ay les aviso si tengo otro inconveniente en alguna otra parte del codigo y de nuevo gracias
  #17 (permalink)  
Antiguo 04/06/2008, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: me cierra la sesion al abrir un popup

Hola israbart,

El problema viene al usar register_globals, ya que tu al definir el valor de $clave automáticamente te reemplaza el valor de $_SESSION['clave'].

Saludos.
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 20:21.