سؤال

أنا أحاول الحصول على rememberMe() وظيفة تذكر المستخدمين والاحتفاظ دورات لعدة أشهر في وقت واحد.

لقد قرأت أنه إذا كان يمكنك تمرير قيمة من خلال rememberMe() انها لن تعمل إذا كانت الدورة قد بدأت بالفعل.من session_set_cookie_params() الوثائق في PHP دليل "تحتاج إلى استدعاء session_set_cookie_params() كل طلب من قبل session_start() يسمى."

بواسطة انا اتصل Zend_session::start() في التمهيد كما اعتقدت كان من المفترض أن.مشكلتي هي أن rememberMe() لا يبدو أن العمل.

عندما اتصل session_get_cookie_params(); أحصل على:

Array([lifetime] => 0 [path] => / [domain] => [secure] => httponly] =>)

أي أفكار ؟

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

المحلول

لقد حللت المشكلة.دورات تم محوها من قبل موقع آخر على نفس الخادم التي تنتهي جلسات كل 24 دقيقة.لإصلاح هذا أنا وضعت الدورة.save_path إلى مجلد جديد.أنا أيضا تعيين الدورة.gc_maxlifetime و الدورة.cookie_lifetime إلى أعداد كبيرة جدا.

حل المشكلة!

نصائح أخرى

لا تستخدم بداية الأسلوب ().يجب أن تعمل بشكل جيد إذا كنت تستخدم MVC.على session_start يجب أن يسمى قبل أي إخراج إرسال هذا صحيح قبل إرسال الرد (بسبب outputbuffering).الدورة تبدأ تلقائيا عند أول Zend_Session_namespace الاستخدام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top