zend中的会话未保存。配置错误?

时间:2012-10-10 10:13:41

标签: php zend-framework session

我尝试使用zend_session_namespace在zend框架中构建一个简单的刷新计数器,但它没有按预期工作。设置后我无法调用命名空间。在下面的考试中,代码一次又一次地显示“1”。有关故障排除的建议吗?

Zend_Session::start();
$defaultNamespace = new Zend_Session_Namespace('numbertester');

// Increment page views
if(isset($defaultNamespace->number)){
    // The code is never entering here
    $defaultNamespace->number++;
} else {
    $defaultNamespace->number = 1;
}

echo $defaultNamespace->number;

更新

我发现这个脚本来测试会话配置。当我在服务器上运行它时它最后在最后一部分告诉我,我的会话配置不正确。我不知道该怎么办?

if( function_exists('ini_get') &&
    in_array(strtolower(ini_get('session.save_handler')), array('user', 'users')) ) {
  if( function_exists('ini_set') &&
      false !== ini_set('session.save_handler', 'files') &&
      false !== ini_set('session.save_path', APPLICATION_PATH . '/temporary/session/') ) {
    if( !is_writable(APPLICATION_PATH . '/temporary/session/') ) {
      throw new Exception('Please set full permissions on temporary/session (chmod 0777).');
    }
  } else {
    throw new Exception('Your session configuration is incorrect and ' .
        'could not be automatically corrected. Please set ' .
        'session.save_handler=files and session.save_path=/tmp (or your ' .
        'temporary directory on non-Linux OSes.');
  }
}

2 个答案:

答案 0 :(得分:0)

可能是你的问题出在其他地方因为我测试了代码并且它在我这边工作。详情请查看:

http://framework.zend.com/manual/1.12/en/zend.session.basic_usage.html

答案 1 :(得分:0)

在php.ini文件中尝试此解决方案(如果您使用本地计算机):

定义保存会话的路径

session.save_path = "C:\php\sessiondata\"

是否使用cookies。

session.use_cookies = 1 

在请求启动时初始化会话。

Set session.auto_start = 1

会话名称(用作cookie名称)。

session.name = PHPSESSID