LINUX.ORG.RU
решено ФорумAdmin

Слетает сессия в PHP приложении

 , , poche


1

1

Постоянно слетает сессия. Имеется lighttpd, php 5.4 и два приложения: selfoss и poche. Оба на доменах третьего уровня и через HTTPS.

В selfoss сессия держится нормально, бывает конечно вылетает, но это очень редко. poche держит сессию не больше 30 минут. selfoss дает куку на месяц, poche — на год. Так же при логине в poche есть флажок Stay signed in который не помогает.

php.ini:

session.save_handler = sqlite
session.save_path = "/var/lib/php/sessions.db"
session.cookie_lifetime = 604800
session.gc_maxlifetime = 604800

Кривой конфиг или кривой poche? Стоит ли выкинуть poche и перейти на pocket? :)

Скорее всего poche сам переопределяет настройки сессии. Поищи в исходниках вызов ini_set(

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Скорее всего poche сам переопределяет настройки сессии. Поищи в исходниках вызов ini_set(

ini_set не делает ничего такого, чего бы уже не было в конфиге.

Вообще в коде ничего такого плохого не нашел. Сессия еще и каждый раз продляется.

UPD: Разве что вот это :)

    // If the user does not access any page within this time,
    // his/her session is considered expired (in seconds).
    public static $inactivity_timeout = 3600;

    // Check that user/password is correct and init some SESSION variables.
    public static function login($login,$password,$login_test,$password_test,
                                 $pValues = array())
    {
        foreach ($pValues as $key => $value) {
            $_SESSION[$key] = $value;
        }
        if ($login==$login_test && $password==$password_test){
            // generate unique random number to sign forms (HMAC)
            $_SESSION['uid'] = sha1(uniqid('',true).'_'.mt_rand());
            $_SESSION['info']=Session::_allInfos();
            $_SESSION['username']=$login;
            // Set session expiration.
            $_SESSION['expires_on']=time()+Session::$inactivity_timeout;
            return true;
        }
        return false;
    }
Сейчас поменяю число.

Black_Roland ★★★★
() автор топика
Последнее исправление: Black_Roland (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Я так понимаю команда крона, про которую ты говоришь, должна удалять старые файлы сессии. У меня сессии не в файлах, и вряд ли кто-то бы предусмотрел такой скрипт для sqlite. Но я все равно поискал и никаких очисток сессий в кроне нет.

Black_Roland ★★★★
() автор топика
Ответ на: комментарий от Black_Roland

public static $inactivity_timeout = 3600;
Сейчас поменяю число.

Помогло :) Всем спасибо.

Black_Roland ★★★★
() автор топика

poche translation

Hello,

I'm the main developer of poche.

If somebody wants to help us by translating poche in russian, don't hesitate and please contact us at support@inthepoche.com

See you later,

Nicolas

nico_somb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.