Збільшити час життя сесії в php

Задовбало! Поки пишу статтю або новину, сесія обривається і при збереженні викидає на сторінку входу, при цьому весь введений текст нахрен не зберігся. Мій час життя витрачено частково даремно, треба заново все писати.

Час життя куки, яка зберігає ідентифікатор сесії за замовчуванням становить 0 сек, тобто сука кука зберігається до того моменту, як браузер буде закритий. Це можна змінити за допомогою параметра session.cookie_lifetime в файлі php.ini.

PHP, як правило, зберігає дані сесії в файлах. Для того, щоб не засмічувати файлову систему періодично здійснюється очищення застарілих даних, garbage collection - прибирання сміття. У файлі php.ini існує параметр session.gc_maxlifetime який вказує час в секундах, по закінченню якого всі застарілі дані будуть видалені з файлової системи.

Припустимо, ми хочемо задати час життя сесії - 3 години. Для цього в файлі php.ini встановлюємо такі параметри:

Якщо у вас немає можливості внести зміни в файл php.ini, то можна зробити установку цих параметрів за допомогою файлу .htaccess. Для цього вносимо в нього наступні рядки:

Якщо ваш хостер забороняє вам використовувати директиву php_value в файлі .htaccess або використовувати .htaccess в цілому - то пора міняти хостера.

При цьому потрібно враховувати, що функціція set_cookie_params повинна бути викликана до того, як сесія буде відкрита за допомогою session_start. Функція set_cookie_params також дозволяє встановити шлях, домен, налаштування безпеки для сесійного куки.

Збільшити час життя сесії в php

Схожі статті