Frage

Coles Notes-Version:

index.php?map_id=foo in iframe geladen auf www.not-my-domain.com. Index setzt SESSION['map_id'] = foo. Flash-Datei versucht SESSION['map_id'] durch Authenticate.php zu bekommen, aber Authenticate.php hat keine Werte für jeder SESSION varaibles.

-. Nur die erste Last, Cross-Domain-Ausgabe

Ausführlich:

Ich habe einen Index, während wo ich eingestellt: SESSION['map_id'] = foo

Die Indexdatei lädt dann eine Flash-Datei. Wenn initialisiert, greift der Blitz eine ‚Authenticate.php‘ Datei, die die aus dem SESSION['map_id'] Echo und wird in Flash über LoadVars geladen. Flash zeigt dann die entsprechenden Daten. Dieser Schritt kann nicht eine andere Art und Weise durchgeführt werden

Das alles ganz gut auf unserer Seite funktioniert. Das Problem kommt, wenn wir in dem Hafen aus zu anderen Websites versuchen, iframe embed-Codes bieten:

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

Bei einer neuen Belastung des eingebetteten Code von einer anderen Seite (www.anotherdomain.com), so scheint es, dass die SESSION Variablen wurden zerstört, als Blitz einfach sagt sie leer ist. ($map_id gibt einen Leerwert)

Die Indexdatei wird noch richtig echo $map_id als ‚foo‘, es scheint nur die Datei ‚Authenticate.php‘ die SESSION nicht zugreifen können varaibles.

Ich habe sichergestellt session_start() ist in allen entsprechenden Dateien.

War es hilfreich?

Lösung

PHP Session-IDs werden durch Cookies standardmäßig übergeben, aber Sie können keine Cookies über mehrere Domains übertragen. Versuchen Sie das Bestehen der Session-ID durch die URL statt.

Hier ist die entsprechende Seite in der PHP-Dokumentation .

Es gibt ein paar Möglichkeiten, wie Sie PHP bekommen können die Session-ID in der URL zu übergeben, wenn es nicht automatisch getan wird.

  1. Sie können manuell die Session-ID in der URL übergeben (muss vor anderen Variablen erhalten):