【问题标题】:session.upload_progress start session automaticallysession.upload_progress 自动启动会话
【发布时间】:2016-05-01 23:54:19
【问题描述】:

PHP session.upload_progress 是一个很好的库来跟踪您的上传进度,但是当您将文件发送到服务器时, session.upload_progress 会自动启动 php 会话,这在 Zend Framework 中无法正常运行,在您调用时会导致异常:

$Session = new Zend_Session_Namespace ( 'zend_session' , true );

例外:

session has already been started by session.auto-start or session_start()

我的 session.auto_start 设置为“关闭”, 我把下面的代码放在页面顶部:

// no one command is executed before this
echo "<pre>";
print_r ($_SESSION );
exit;
  • 只调用页面而不上传:PHP 说 $_SESSION 没有设置
  • 发布带有文件的表单:即使不调用 session_start(),PHP 也会显示整个 $_SESSION 变量

我的会话部分配置:

Session Support     enabled
Registered save handlers    files user memcache memcached redis
Registered serializer handlers  php_serialize php php_binary wddx igbinary

Directive   Local Value Master Value
session.auto_start      Off Off
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path     /   /
session.cookie_secure   Off Off
session.entropy_file    /dev/urandom    /dev/urandom
session.entropy_length  32  32
session.gc_divisor      1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path       /tmp    /tmp
session.serialize_handler   php php
session.upload_progress.cleanup Off Off
session.upload_progress.enabled On  On
session.upload_progress.freq    1%  1%
session.upload_progress.min_freq    1   1
session.upload_progress.name    PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix  upload_progress_    upload_progress_
session.use_cookies         On  On
session.use_only_cookies    On  On
session.use_strict_mode     Off Off
session.use_trans_sid       1   1

我的代码中没有 session_start(),我只是让 ZendFramework 通过运行来完成:

Zend_Registry::set( "session" , new Zend_Session_Namespace ( 'zend_session' , true ) ) ;

【问题讨论】:

  • 如果我不调用 Zend_Registry::set( "session" , new Zend_Session_Namespace ( 'zend_session' , true ) ) ,站点将无法正常工作;如果会话已经是 starterd。所以,我认为这与您引用的问题不重复

标签: php session zend-framework zend-session


【解决方案1】:

在 Zend_Session() : 456 中测试:

if (!self::$_unitTestEnabled && defined('SID')) ...

SID 已定义,但 $_SESSION 为空。但问题是这是一个 Zend Framework 类,你可以注释它,但不建议更改框架文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2012-08-03
    相关资源
    最近更新 更多