سؤال

يبدو أن جلستي صالحة فقط في النافذة/علامة التبويب الحالية. كما يبدو أن المهلة بسرعة. Heres كيف أحاول حاليًا القيام بذلك:

هذا في وحدة تحكم تسجيل الدخول الخاصة بي:

$adapter = $this->getAuthAdapter($data);
$auth    = Zend_Auth::getInstance();
$result  = $auth->authenticate($adapter);

if (!$result->isValid()) {
    $this->view->err = "Invalid username or password.<br/>Please try again.";
    return $this->render('index'); // re-render the login form
}

Zend_Session::rememberMe(60*60*24*7*4);

وهذا في bootstrap الخاص بي:

Zend_Session::start();

أنا جديد نسبيًا على بعض هذه الأشياء ، لذا تحمل معي! أي مساعدة سيكون موضع تقدير كبير.

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

المحلول

إليك ما كان يحدث. كان هذا الموقع على خادم يشارك مجلد جلسات مع موقع ويب آخر على الخادم. على الرغم من أنني زادت مدى عمر الجلسة مع INI_SET ، إلا أن جلساتي لا تزال يتم حذفها من قبل التطبيق الآخر.

لحل هذا ، قمت ببساطة بتعيين Session.save_path إلى مجلد جديد. تم حل المشكلة!

نصائح أخرى

أريد فقط أن أضيف أنك تقوم بتغيير الجلسة. save_path في .htaccess مع صف المتابعة لجعله يعمل. رأيت الإجابة اعتقدت أنني غيرت ذلك في .ini ، لكنها في .htaccess.

علي سبيل المثال:

php_value session.save_path /home/kaos/data/sessions/

من خلال البحث عن مصدر Zend_Session ، فإن طريقة remextme ())

لذلك قد ترغب في التحقق من قيم php.ini الخاصة بك Session.cookie_lifetime. إذا لم يكن 0 ، فسيكون Zend_Session :: RememberMe () عديمة الفائدة ما لم تكن القيمة أقل من Session.cookie_lifetime. في هذه الحالة ، تريد تعيينه على 0 في php.ini أو في التطبيق الخاص بك باستخدام ini_set () كما هو موضح في التعليق الأول على Session.cookie_lifetime man صفحة.

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