ajuste problema variáveis ??PHP sessão dentro iframe entre domínios
-
03-07-2019 - |
Pergunta
versão Coles Notas:
index.php?map_id=foo
é carregado no iframe em www.not-my-domain.com. índice conjuntos SESSION['map_id']
= foo. tentativas de arquivo do Flash para obter SESSION['map_id']
através authenticate.php, mas authenticate.php não tem valores definidos para qualquer SESSION
varaibles.
- Somente a primeira carga, assuntos cruz domínio
.Verbose:
Eu tenho um índice, enquanto onde eu definir: SESSION['map_id'] = foo
O arquivo de índice, em seguida, carrega um arquivo flash. Quando inicializado, o flash acessa um arquivo 'authenticate.php', que ecoam de fora da SESSION['map_id']
e é carregado na memória flash via LoadVars
. Flash em seguida, exibe os dados apropriados.
Este passo não pode ser feito de outra maneira
Isso tudo funciona muito bem em nosso site principal. A questão vem quando tentamos porta fora para outros sites, fornecendo iframe incorporar códigos:
<iframe src="http://www.mydomain.com/?map_id=foo&code=bar" ... ></iframe>
Em uma nova carga do código de outro site (www.anotherdomain.com), parece que as variáveis ??SESSION
foram destruídas, como Flash simplesmente diz que eles estão vazios. ($map_id
gera um em branco)
O arquivo de índice ainda ecoará adequadamente $map_id
como 'foo', ele só parece arquivo do 'authenticate.php' não pode acessar o SESSION
varaibles.
session_start()
I garantiram está presente em todos os arquivos apropriados.
Solução
PHP ids de sessão são passados ??através de cookies por padrão, mas você não pode transferir os cookies entre domínios. Tente passar o id de sessão através da url vez.
Aqui está a página apropriada na documentação do php .
Existem algumas maneiras de obter php para passar o id de sessão na url se não está sendo feito automaticamente.
-
Você pode passar manualmente o id de sessão na url (deve vir antes de outras variáveis ??GET):
-
Você pode desativar os cookies, forçando cada pedido para ter o id de sessão automaticamente adicionada à url:
ini_set ( "session.use_cookies", "0");
-
Você pode editar os url_rewriter.tags configuração, que diz PHP que tags de html para reescrever com o ID de sessão. Aqui, iframe = src foi adicionado ao conjunto padrão:
ini_set ( "url_rewriter.tags", "a = href, área = href, quadro = src, iframe = src, entrada = src, formam = fakeentry");