Zend_Session_SaveHandler_DbTable не генерирует действительный идентификатор сеанса?
-
19-09-2019 - |
Вопрос
В настоящее время я рву на себе волосы, пытаясь сохранить аутентификацию через сеанс баз данных.Я настроил Zend_Session на использование базы данных, и при проверке Zend записывает значения в базу данных.Однако идентификатор для этих сеансов, похоже, не соответствует PHPSESSID - однако, когда я получаю Zend_Session для возврата идентификатора, он возвращает соответствующее значение.
Итак, в моей базе данных у меня есть:
ID.....MODIFIED.......LIFETIME...DATA
344..1265640083.......1440.......BLAH
Тем не менее, если я вызову идентификатор из самого сеанса Zend...
$id = Zend_Session::getId();
echo $id; // mbgspg2gvf1c3r9l7qpv6orgt4
Я предполагаю, что идентификатор, сгенерированный сеансом Zend, должен совпадать с идентификатором PHPSESSID, правильно?
Вот мой загрузчик
$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_DbTable?showComments=false
Я молюсь, чтобы именно это все исправило.Возможно, локальная ошибка в моем Apache?