は、私が試してみました何Symfony 1.2.4
OrangeHRM自動ログアウト問題
で構築されましたか?私はファイルの次のコード/symfony/lib/vendor/symfony/lib/user/sfBasicSecurityUser.class.php
public function initialize(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
{
// initialize parent
parent::initialize($dispatcher, $storage, $options);
if (!array_key_exists('timeout', $this->options))
{
$this->options['timeout'] = 86400;
//$this->options['timeout'] = 1800;
}
$this->options['timeout'] = 86400;
//$this->options['timeout'] = 2 * 24 * 60 * 60;
// force the max lifetime for session garbage collector to be greater than timeout
/*if (ini_get('session.gc_maxlifetime') < $this->options['timeout'])
{
ini_set('session.gc_maxlifetime', $this->options['timeout']);
}*/
ini_set('session.gc_maxlifetime', $this->options['timeout']);
// read data from storage
$this->authenticated = $storage->read(self::AUTH_NAMESPACE);
$this->credentials = $storage->read(self::CREDENTIAL_NAMESPACE);
$this->lastRequest = $storage->read(self::LAST_REQUEST_NAMESPACE);
if (null === $this->authenticated)
{
$this->authenticated = false;
$this->credentials = array();
}
else
{
// Automatic logout logged in user if no request within timeout parameter seconds
$timeout = $this->options['timeout'];
if (false !== $timeout && null !== $this->lastRequest && time() - $this->lastRequest >= $timeout)
{
if ($this->options['logging'])
{
$this->dispatcher->notify(new sfEvent($this, 'application.log', array('Automatic user logout due to timeout')));
}
$this->setTimedOut();
$this->setAuthenticated(false);
}
}
$this->lastRequest = time();
}
をコメントした後試みphp.ini
と.htaccess
介してセッションへの最大時間を割り当てることを試みた
を設定しよう
$_SESSION['symfony/user/sfUser/lastRequest']
を手動で入力してください。AJAX
でリクエストを送信しても有効であるように試みました。は、上記の技術のすべてが失敗した
.../symfony/apps/orangehrm/config/factories.yml
all: routing: class: sfPatternRouting param: generate_shortest_url: true extra_parameters_as_query_string: true storage: class: sfSessionStorage param: session_name: PHPSESSID session_cache_limiter: nocache user: class: myUser param: timeout: 86000 logging: %SF_LOGGING_ENABLED% use_flash: true default_culture: %SF_DEFAULT_CULTURE%
最終結果
に位置YML
設定ファイルからのセッション時間を増加させようとしました。
お返事ありがとうございます。私はあなたの提供されたソリューションを試しましたが、まだ問題に直面しています。 – Hassaan
symfonyのバージョンは '1.2.4'です – Hassaan