Problema durante l'impostazione delle variabili SESSIONE PHP all'interno dell'iframe tra domini
-
03-07-2019 - |
Domanda
Versione Coles Notes:
index.php?map_id=foo
viene caricato in iframe su www.not-my-domain.com. set di indici SESSION['map_id']
= pippo. Il file Flash tenta di ottenere SESSION
tramite Authenticate.php, ma Authenticate.php non ha valori impostati per any SESSION['map_id'] = foo
varaibles.
- Solo problema di primo dominio, cross-domain.
verbose:
Ho un indice mentre ho impostato: LoadVars
Il file indice quindi carica un file flash. Una volta inizializzato, il flash accede a un file "Authenticate.php" che fa eco a $map_id
e viene caricato in flash tramite session_start()
. Flash quindi visualizza i dati appropriati.
Questo passaggio non può essere eseguito in un altro modo
Tutto funziona perfettamente sul nostro sito principale. Il problema si presenta quando proviamo a effettuare il port out su altri siti fornendo codici di incorporamento iframe:
<iframe src="http://www.mydomain.com/?map_id=foo&code=bar" ... ></iframe>
Su un nuovo carico del codice di incorporamento da un altro sito (www.anotherdomain.com), sembra che le variabili <=> siano state distrutte, poiché Flash dice semplicemente che sono vuote. (<=> genera uno spazio vuoto)
Il file indice continuerà a risuonare correttamente <=> come 'pippo', sembra solo che il file 'Authenticate.php' non possa accedere ai <=> variabili.
Ho assicurato che <=> è presente in tutti i file appropriati.
Soluzione
Gli ID di sessione PHP vengono passati attraverso i cookie per impostazione predefinita, ma non è possibile trasferire i cookie tra domini. Prova invece a passare l'ID sessione tramite l'URL.
Ecco la pagina appropriata nella documentazione php .
Ci sono alcuni modi in cui puoi far passare php nell'ID URL della sessione se non viene fatto automaticamente.
-
Puoi passare manualmente l'id di sessione nell'URL (deve venire prima che altre variabili get):
< iframe src = " http: //www.mydomain.com/? & amp; map_id = foo & amp; code = bar " gt;
-
Puoi disabilitare i cookie, forzando ogni richiesta affinché l'ID sessione venga automaticamente aggiunto all'URL:
ini_set (quot &; Session.use_cookies quot &;, Quot &; 0 quot &;);
-
Puoi modificare l'impostazione url_rewriter.tags, che dice a PHP quali tag html riscrivere con l'id di sessione. Qui, iframe = src è stato aggiunto al set predefinito:
ini_set (" url_rewriter.tags " ;, " a = href, area = href, frame = src, iframe = src, input = src, form = fakeentry ");