Zend_Session_SaveHandler_DbTable не генерирует действительный идентификатор сеанса?

StackOverflow https://stackoverflow.com/questions/2222437

Вопрос

В настоящее время я рву на себе волосы, пытаясь сохранить аутентификацию через сеанс баз данных.Я настроил 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?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top