مشكلة إعداد دورة PHP المتغيرات داخل عبر المجال iframe
-
03-07-2019 - |
سؤال
كولز ملاحظات الإصدار:
index.php?map_id=foo
يتم تحميلها في iframe على www.not-my-domain.com.مؤشر مجموعات SESSION['map_id']
= foo.ملف فلاش يحاول الحصول على SESSION['map_id']
من خلال Authenticate.php ولكن Authenticate.php لا يوجد لديه القيم المحددة أي SESSION
varaibles.
-- الأولى فقط-تحميل عبر المجال المسألة.
مطول:
لدي مؤشر حين أين يمكنني تعيين: SESSION['map_id'] = foo
ملف الفهرس ثم تحميل ملف فلاش.عند تهيئة الفلاش يصل أحد 'Authenticate.php' ملف صدى هذا SESSION['map_id']
ويتم تحميلها في فلاش عبر LoadVars
.فلاش ثم يعرض البيانات المناسبة.هذه الخطوة لا يمكن أن يتم بطريقة أخرى
هذا كل شيء يعمل على ما يرام على موقعنا الرئيسي.المشكلة تأتي عندما نحاول أن منفذ إلى مواقع أخرى من خلال توفير الإطار تضمين رموز:
<iframe src="http://www.mydomain.com/?map_id=foo&code=bar" ... ></iframe>
على حمولة جديدة من تضمين رمز من موقع آخر (www.anotherdomain.com) ، يبدو أن SESSION
المتغيرات قد دمرت ، فلاش ببساطة يقول أنها فارغة.( $map_id
النواتج فارغة )
مؤشر الملف لا يزال بشكل صحيح صدى $map_id
كما 'فو' ، يبدو فقط 'Authenticate.php' لا يمكن الوصول إلى الملف SESSION
varaibles.
لقد كفل session_start()
هي موجودة في كل الملفات المناسبة.
المحلول
دورة PHP معرفات يتم تمريرها من خلال ملفات تعريف الارتباط بشكل افتراضي ولكن لا يمكنك نقل ملفات تعريف الارتباط عبر المجالات.محاولة تمرير معرف جلسة العمل من خلال url بدلا من ذلك.
هنا هي الصفحة المناسبة في php الوثائق.
هناك عدد قليل من الطرق التي يمكنك الحصول على php تمرير معرف جلسة في عنوان url إذا كان لا يتم القيام به تلقائيا.
يمكنك يدويا تمرير معرف جلسة العمل في url (يجب أن يأتي قبل الآخر على المتغيرات):
<iframe src="http://www.mydomain.com/?&map_id=foo&code=bar">
يمكنك تعطيل ملفات تعريف الارتباط ، مما اضطر كل طلب معرف جلسة إضافتها تلقائيا إلى عنوان url:
ini_set("الدورة.use_cookies","0");
يمكنك تحرير url_rewriter.العلامات الإعداد الذي يحكي PHP التي html العلامات كتابة مع معرف جلسة العمل.هنا iframe=src تم إضافتها إلى المجموعة الافتراضية:
ini_set("url_rewriter.الكلمات", "a=a href المنطقة=href,frame=src,iframe=src الإدخال=src شكل=fakeentry");