Foros del Web » Programando para Internet » PHP »

app enbebida en iframe no guarda cookie en safari

Estas en el tema de app enbebida en iframe no guarda cookie en safari en el foro de PHP en Foros del Web. Tengo una applicación que contiene otra aplicacion en un iframe Es el problema de los navegadores internet explorer y safari que por regla tienen politicas ...
  #1 (permalink)  
Antiguo 11/08/2011, 21:30
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información app enbebida en iframe no guarda cookie en safari

Tengo una applicación que contiene otra aplicacion en un iframe

Es el problema de los navegadores internet explorer y safari que por regla tienen politicas de privacidad que solo permiten generar cookies del dominio principal mas no del dominio que se encuentra en el iframe.

en iexplorer lo solucione con una cabecera P3P de la siguiente manera

header('P3P: CP="CAO PSA OUR"');

pero en safari no funciona ni de una ni de otra. por el momento sigo buscandole una solución, esto si que es un quebradero de cabeza.

un abrazo.

Gracias
  #2 (permalink)  
Antiguo 12/08/2011, 03:53
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: app enbebida en iframe no guarda cookie en safari

utilizas dos dominios diferentes?, para que quieres una cookie de otro dominio en tu dominio?

comoces ajax?

Tal vez esto te podria servir

set_cookie("nombre", $valor, time(), "/")

el "/" es para todos los lugares de un servidor, icluso diferentes dominios, pero debe ser dentro del mismo servidor, no se pueden (no que yo sepa) heredar cookies entre servidores, al menos que tomes datos con curl y establescas tus propias cookies
  #3 (permalink)  
Antiguo 12/08/2011, 11:42
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Gracias por responder

te invito a que pruebes la plicación

live . vidium . es

email: [email protected]
pass:123

En el lado superior derecho veras un select box con la lista de ips
seleccionas el que empieza con 46 que es el que existe

lo correcto es que te muestre el home y no el login

con los navegadores firefox, opera, crome se ven a la perfección
los problemas fueron con iexplorer y safari. por politicas de seguridad que tienen esos navegadores no aceptan la cookie de session del sitio en el iframe.

pero en iexplorer lo solucione con una cabecera header('P3P: CP="CAO PSA OUR"');

EN SAFARI NO LE ENCUENTRO MANERA.


- son aplicaciones de distintos servidores
- tengo acceso a las dos aplicaciones

la llamada al servidor dentro del iframe lo hice con jsonp

Código Javascript:
Ver original
  1. function openSession(localhostIp, emaill, securityDataa){
  2.                     //alert(localhostIp+" "+email+" "+securityData);
  3.                     $.jsonp({
  4.                             url: "http://"+localhostIp+":9000/pms/api/loginRemote.php",
  5.                             cache: true,
  6.                             pageCache :true,
  7.                             callbackParameter: "callback",
  8.                             //data: "email="+email+"&securityData="+securityData,
  9.                             data: {"email": emaill, "securityData": securityDataa},
  10.                             beforeSend: function (xOptions) {
  11.                                    
  12.                                         viewLoaded();
  13.                             },
  14.                             success: function (json, textStatus) {
  15.                                 $("#loading img").hide();
  16.                                 if (json.aut == "ok"){
  17.                                     sessionId = json.sessionId;
  18.                                         $('div#divDestino').html(' ').append('<iframe id="framevidium" name="targetdiv" width="100%" height="600" src="http://'+localhostIp+':9000/pms/webadmin/home.php"/>');
  19.                                         successDivs();
  20.                                 }else{
  21.                                     $('div#divDestino').html(' ');
  22.                                     errorDivs();
  23.                                     alert(json.message);
  24.                                 }
  25.                             },
  26.                             error: function (xOptions, textStatus) {
  27.                                 $('div#divDestino').html(' ');
  28.                                 errorDivs();
  29.                                 alert("Error: la pagina no existe");
  30.                             }
  31.                     });
  32.                     prevLocalhostIp = localhostIp;
  33.                 }
  34.                
  35.                 function viewLoaded(){
  36.                     $("#divhome").hide();
  37.                     $("#divDestino").hide();
  38.                     $("#loading img").show();
  39.                 }

Gracias por el apoyo
  #4 (permalink)  
Antiguo 12/08/2011, 14:00
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: app enbebida en iframe no guarda cookie en safari

Y en que parte del codigo nececitas las cookies?.. es para recordar un usuario?
  #5 (permalink)  
Antiguo 12/08/2011, 14:15
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Hola. no es para guardar session.

ese codigo se comunica con loginRemoto.php que inicia session en el servidor al que apunta el iframe

el problema es que cuando inicia session la seguridad de safari no permite escribir la cookie de terceros es decir que no sea el dominio donde estes navegando

es por eso que cuando elijes del ip del select box al comunicarse con loginRemoto.php del servidor que apunta el iframe te manda al login.

la forma en como debe de funcionar puedes probarlo con los otros navegadores.

es un quebradero de cabeza. llevo muchos dias con este problema sin poder solucionarlo. por el momento le puse el mensaje que si usa safari use otro navegador para poder usar la aplicación

creo que me quedan largos dias y noches sin dormir

Gracias por responder
  #6 (permalink)  
Antiguo 12/08/2011, 14:23
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: app enbebida en iframe no guarda cookie en safari

umm, podrias mandar por $_POST algun tipo de validadcion, cuando el servidor remoto la reciba hacer que cree la cookie.

Esto es (claro) por ajax, o como lo estas haciendo jQuery.post();

Ahora, que yo tenga entendido no se pueden heredar las cookies asi como asi, si no, de que servirian los login button de facebook?, solo bastaria con poner a facebook en un iframe
  #7 (permalink)  
Antiguo 12/08/2011, 14:28
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Cita:
Iniciado por danneg Ver Mensaje
umm, podrias mandar por $_POST algun tipo de validadcion, cuando el servidor remoto la reciba hacer que cree la cookie.

Esto es (claro) por ajax, o como lo estas haciendo jQuery.post();

Ahora, que yo tenga entendido no se pueden heredar las cookies asi como asi, si no, de que servirian los login button de facebook?, solo bastaria con poner a facebook en un iframe
una solución que lei fue crear sessiones usando la bsae de datos pero eso me consumiria recursos al cambiar cada pagina

la llamada anterior me da como resultado el id de la sesion que crea en el servidor remoto.

hay alguna manera de escribir con javscript en la pagina principal indicandole que pertenese a un dominio externo a partir de esa id de session?

gracias por responder.
  #8 (permalink)  
Antiguo 12/08/2011, 15:03
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: app enbebida en iframe no guarda cookie en safari

No creo, ya que las seciones se guardan como cookie "PHPSSID"...

ahora, las seciones se mandan por headers, lo que puedes hacer es obligar que te mande por url la informacion de las seciones o de las cookies, y con js obtener los valores... vi un tutorial, lo buscare y regreso!
  #9 (permalink)  
Antiguo 12/08/2011, 15:11
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Cita:
Iniciado por danneg Ver Mensaje
No creo, ya que las seciones se guardan como cookie "PHPSSID"...

ahora, las seciones se mandan por headers, lo que puedes hacer es obligar que te mande por url la informacion de las seciones o de las cookies, y con js obtener los valores... vi un tutorial, lo buscare y regreso!
Gracias espero con los ojos brillosos *_*
  #11 (permalink)  
Antiguo 12/08/2011, 15:15
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: app enbebida en iframe no guarda cookie en safari

*-*' hahah... me recordo cuando chateo con mi novia!! .. siempre pone esos ojos brillosos
  #12 (permalink)  
Antiguo 12/08/2011, 15:22
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Cita:
Iniciado por danneg Ver Mensaje
*-*' hahah... me recordo cuando chateo con mi novia!! .. siempre pone esos ojos brillosos
jajaja..


entonses no hay manera de crear el PHPSSID en el navegadr con el id de la session que me da loginRemoto.php.???

si esto se lograria haria una condicional que si no existe la cookie de ese dominio la creo manualmente.

ok toca documentarme con esos enlaces, muchas gracias..

Gracias.
  #13 (permalink)  
Antiguo 12/08/2011, 15:26
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: app enbebida en iframe no guarda cookie en safari

Pues lo que puedes hacer, es con la informacion que hay ahi, tomar el valor de las cookies por url del servidor remoto y crear las cookies en el servidor huesped.. al menos eso es lo que yo haria

Un slaudo!
  #14 (permalink)  
Antiguo 12/08/2011, 15:29
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Cita:
Iniciado por danneg Ver Mensaje
Pues lo que puedes hacer, es con la informacion que hay ahi, tomar el valor de las cookies por url del servidor remoto y crear las cookies en el servidor huesped.. al menos eso es lo que yo haria

Un slaudo!
ok probare y te cuento como me va.

Gracias un abrazo.

Etiquetas: cookie, cookies, header, p3p, session
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 02:24.