首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OrangeHRM自动注销问题

OrangeHRM自动注销问题
EN

Stack Overflow用户
提问于 2016-05-11 16:21:22
回答 2查看 625关注 0票数 1

我面临着用OrangeHRM构建Symfony 1.2.4的自动注销问题

我试过什么?

  1. 我试图通过php.ini.htaccess将最大的时间分配给会话。
  2. 在注释完文件/symfony/lib/vendor/symfony/lib/user/sfBasicSecurityUser.class.php的代码后尝试 公共函数初始化(sfEventDispatcher $dispatcher,sfStorage $storage,$options =sfStorage()){ //初始化父函数::初始化($dispatcher,$storage,$options);if (!array_key_exists(‘超时值’,$this->选项){$this->选项‘超时值’= 86400;//$此->选项‘超时值’= 1800;}$此->选项‘超时值’= 86400;//$此->选项‘timeout’=2* 24 * 60 * 60;//强制会话垃圾回收器的最大生存期大于超时值/*if (ini_get('session.gc_maxlifetime') <$this->options‘超时值’){ini_set(‘session.gc_ max生存期’,$this->选项‘超时值’);}*/ ini_set(‘session.gc_max生存期’,$this->选项‘timeout’);//读取存储中的数据$this->= $ storage -> read (self::AUTH_NAMESPACE);$this->凭据=$存储->read(self::CREDENTIAL_NAMESPACE);$this->lastRequest =$ === ->read(===);if (null ===$this->凭据=false){$this->凭据= false;$this->凭据=数组();}{ //自动登录用户,如果在超时参数秒内没有请求,$timeout =$this->选项‘超时值’;如果(false !== $timeout && null !== $this->lastRequest & time() - $this->lastRequest >= $timeout) { if ($this->options‘’logging‘){$this->dispatcher->==(新的sfEvent($this,'application.log’),数组(‘由于超时而导致的自动用户注销’);} $this->setTimedOut();$this->setTimedOut(False);} $this->lastRequest = time(); }
  3. 尝试手动设置$_SESSION['symfony/user/sfUser/lastRequest']
  4. 试图通过AJAX发送get请求来保持活动状态。
  5. 尝试从位于YML.../symfony/apps/orangehrm/config/factories.yml设置文件中增加会话时间 全部:路由:类: sfPatternRouting param: generate_shortest_url: true extra_parameters_as_query_string: true extra_parameters_as_query_string: class: sfSessionStorage param: session_name: PHPSESSID session_cache_limiter: nocache用户: class: myUser param:超时值: 86000日志记录:%SF_LOGGING_ENABLED%使用_flash:真default_culture:%SF_DEFAULT_CULTURE%

最终结果

所有这些技术都失败了。

EN

回答 2

Stack Overflow用户

发布于 2016-05-11 16:44:22

首先,您不应该触摸供应商目录中的文件!

在symfony应用程序中修改会话生存期的正确方法是通过config.yml文件。See this question for reference

票数 0
EN

Stack Overflow用户

发布于 2016-05-22 14:27:28

尽管这有点晚,但这将帮助您扩展会话超时值。此设置位于.../symfony/apps/orangehrm/config/factories.yml文件中。

在这里你会看到下面的设置,

代码语言:javascript
复制
all:
  routing:
    class: ohrmPatternRouting
    param:
      generate_shortest_url:            true
      extra_parameters_as_query_string: true
  storage:
    class: sfSessionStorage
    param:
      session_name: PHPSESSID
      session_cookie_secure: true
      session_cache_limiter: nocache
  user:
     class: myUser
     param:
       timeout:         1800 #change this value to change the session timeout interval
       logging:         %SF_LOGGING_ENABLED%
       use_flash:       true
       default_culture: %SF_DEFAULT_CULTURE%

应该更改的相关值是timeout参数。默认值为1800秒(30分钟)。如果您在开发环境中,请执行symfony命令(在终端中,进入symfony文件夹并执行./symfony cc)以使其工作。希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37168250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档