zend_session_savehandler_dblable لا تولد معرف جلسة صالح؟
-
19-09-2019 - |
سؤال
أنا حاليا تمزيق شعري في محاولة لاستمرار المصادقة عبر جلسة قواعد قاعدة البيانات. لقد قمت بتعيين Zend_Session لاستخدام قاعدة بيانات، وعلى التفتيش، ZEND هو كتابة القيم إلى قاعدة البيانات. ومع ذلك، فإن معرف تلك الجلسات لا يبدو أنه يتطابق مع phpsessid - حتى الآن عندما أحصل على zend_session لإرجاع المعرف - فإنه بإرجاع قيمة مطابقة.
لذلك - في DB لدي:
ID.....MODIFIED.......LIFETIME...DATA
344..1265640083.......1440.......BLAH
ومع ذلك، إذا اتصلت بالمعرف من جلسة ZEND نفسها ...
$id = Zend_Session::getId();
echo $id; // mbgspg2gvf1c3r9l7qpv6orgt4
أفترض أن المعرف الذي تم إنشاؤه عن طريق جلسة zend يجب أن يتطابق مع ذلك من phpsessed، صحيح؟
ها هي bootstrap بلدي
$dbAdapter = $resource->getAdapter();//connection is tested and working
Zend_Registry::set("db", $dbAdapter);
$config = array(
'name' => 'sessions',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime',
'db' => $dbAdapter
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::start();
سأكون ممتنا للأبد إذا كان شخص ما يستطيع إلقاء بعض الضوء على هذا ...
المحلول
حسنا، أنا مخبأ. لقد غيرت نوع الجدول إلى InnoDB والآن يعمل.
في دفاعي - في الوثائق الرئيسية لا تحدد InnoDB: http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html.
بينما هنا يفعل: http://framework.zend.com/wiki/display/zfprop/zend_session_savehandler_dbless؟comments=false.
أنا أصلي هذا ما تم إصلاحه. ربما خطأ محلي في اباتشي الخاص بي؟