Pregunta

Versión de notas de Coles:

index.php?map_id=foo se carga en iframe en www.not-my-domain.com.conjuntos de índices SESSION['map_id'] = foo.El archivo Flash intenta obtener SESSION['map_id'] a través de Authenticate.php, pero Authenticate.php no tiene valores establecidos para cualquier SESSION variables.

-- Solo problema entre dominios y primera carga.

Verboso:

Tengo un índice mientras configuro: SESSION['map_id'] = foo

El archivo de índice luego carga un archivo flash.Cuando se inicializa, el flash accede a un archivo 'Authenticate.php' que se repite en el SESSION['map_id'] y se carga en flash a través de LoadVars.Flash luego muestra los datos apropiados.Este paso no se puede hacer de otra manera.

Todo esto funciona bien en nuestro sitio principal.El problema surge cuando intentamos migrar a otros sitios proporcionando códigos de inserción de iframe:

<iframe src="http://www.mydomain.com/?map_id=foo&code=bar" ... ></iframe>

En una nueva carga del código de inserción de otro sitio (www.anotherdomain.com), parece que el SESSION Las variables han sido destruidas, ya que flash simplemente dice que están vacías.( $map_id genera un espacio en blanco)

El archivo de índice seguirá haciendo eco correctamente $map_id como 'foo', parece que el archivo 'Authenticate.php' no puede acceder al SESSION variables.

me he asegurado session_start() está presente en todos los archivos apropiados.

¿Fue útil?

Solución

Los ID de sesión PHP se pasan a través de las cookies de forma predeterminada, pero no puede transferir cookies a través de dominios. Intente pasar la identificación de la sesión a través de la URL en su lugar.

Aquí está la página apropiada en la documentación de php .

Hay algunas formas en que puede hacer que php pase la identificación de la sesión en la URL si no se hace automáticamente.

  1. Puede pasar manualmente el ID de sesión en la url (debe venir antes que otras variables get):

    < iframe src = " http: //www.mydomain.com/? & amp; map_id = foo & amp; code = bar " gt;

  2. Puede deshabilitar las cookies, lo que obliga a cada solicitud a que el ID de sesión se agregue automáticamente a la URL:

    ini_set("session.use_cookies","0");

  3. Puede editar la configuración url_rewriter.tags, que le dice a PHP qué etiquetas html debe reescribir con la identificación de la sesión. Aquí, iframe = src se ha agregado al conjunto predeterminado:

    ini_set (" url_rewriter.tags " ;, " a = href, area = href, frame = src, iframe = src, input = src, form = fakeentry ");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top