Cross-domain iframe içinde PHP OTURUM değişkenleri ayarlayarak Sorunu

1 Cevap php

Coles Notlar sürümü:

index.php?map_id=foo www.not-my-domain.com üzerinde iframe'e yüklenir. dizin kümeleri SESSION['map_id'] foo =. Flash dosyası SESSION['map_id'] Authenticate.php yoluyla elde etmeye çalışır, ancak Authenticate.php any SESSION varaibles için ayarlanmış hiçbir değerleri vardır.

- Sadece ilk yük, çapraz etki alanı sorunu.

Ayrıntılı:

SESSION['map_id'] = foo: while I set nerede bir dizin var

The index file then loads a flash file. When initialized, the flash accesses an 'Authenticate.php' file which echo's out the SESSION['map_id'] and is loaded into flash via LoadVars. Flash then displays the appropriate data. This step cannot be done another way

Bu bizim tüm ana sitede gayet güzel çalışıyor. Biz iframe embed kodları sağlayarak diğer sitelere dışarı noktasına çalıştığınızda sorun gelir:

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

Flaş sadece onlar boş dediği gibi başka bir siteden (www.anotherdomain.com) dan embed kodu taze bir yük, bu SESSION değişkenleri yok edilmiş gibi görünüyor. ($map_id boş çıktılar)

Dizin dosya hala düzgün $map_id 'foo' olarak yankılanacak, sadece 'Authenticate.php' dosyası SESSION varaibles erişemiyor görünüyor.

I session_start() tüm uygun dosyalarda mevcuttur sağlamıştır.

1 Cevap

PHP oturum kimlikleri varsayılan olarak çerezleri geçirilir, ancak etki alanları arasında çerezleri transfer edilemez. Yerine url ile session id geçen deneyin.

Here is the appropriate page in the php documentation.

Otomatik olarak yapılıyor değilse url session id geçmek için php alabileceğiniz birkaç yolu vardır.

  1. Elle (diğer almak değişkenlerden önce gelmelidir) url session id iletebilirsiniz: