سؤال

أحاول تنفيذ أداة تحميل Flash في تطبيق إطار عمل Zend الخاص بي ولكني أواجه مشكلات في الجلسة.

لا يرسل Flash أي رؤوس ملفات تعريف الارتباط وهذا هو سبب فقدان الجلسة.أحاول إرسال معرف الجلسة كمعلمة نشر وفي ملف التمهيد الخاص بي أضفت session_id($_POST['session_id]) ولكن يبدو أن هذا لا يعمل.

أنا أستخدم جدول MySQL كمخزن للجلسة

لقد حاولت تصحيح الخطأ وبقدر ما أرى، تم تعيين session_id، ويقوم التخزين بإرجاع البيانات الصحيحة من قاعدة البيانات ولكن لا يبدو أنه تم تعيينها بشكل صحيح في $_SESSION العمومية.

والأغرب من ذلك أنه يبدو أنه يعمل على جهاز الكمبيوتر الذي يعمل بنظام Windows ولكن ليس على خادم Linux المرحلي.

هل كانت مفيدة؟

المحلول

هل تعرف ما إذا كنت تستخدم Suhosin مع تثبيت PHP الخاص بك؟

لقد سمعت أ تقارير قليلة قيام Suhosin بذلك للجلسات، الحل في هذه الحالة هو التعطيل suhosin.session.cryptua في php.ini.

على أية حال، إذا لم تكن هذه مشكلتك، فقط للتأكد من الأساسيات:

  1. تأكد من اجتيازك session_id() في مشاركة من برنامج Flash الخاص بك، على سبيل المثال، مع تحميل SWF, ، ويتم ذلك عن طريق تمريره في post_params قيمة مصفوفة التكوين
  2. تأكد من الاتصال session_id($_POST['session_id]) قبل session_start()

لكن على أية حال، من المحتمل أن يكون الأمر مرتبطًا بتثبيت PHP الخاص بك إذا كنت تقول أنه يعمل ضمن بيئة Windows لديك.

نصائح أخرى

وهذا يبدو مماثلا لمختلف الأخطاء التي تم الإبلاغ عنها على مر السنين، وإن كان في معظم الحالات انها عملت على لينكس وليس على النوافذ.

http://framework.zend.com/issues/browse/ZF-2459 https://www.zend.com/en/ المنتديات / index.php؟ ر = جي اس وغوتو = 16104 & S = de7d9b854db445eb37d0f33470cac6b0

ومؤخرا في الشهر الماضي:

<وأ href = "http://blog.rac.me.uk/2009/01/09/php-zend-session-dont-set-it-up-in-the-initalizer/" يختلط = " noreferrer نوفولو "> http://blog.rac.me.uk/2009/01/09/php-zend-session-dont-set-it-up-in-the-initalizer/

و- MarkusQ

وحاول التالية في عمل جهاز تحكم:

session_write_close();
session_id($this->_getParam('PHPSESSID'));
session_start(); 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top