Alex
Искусственный Интеллект
(120701)
2 месяца назад
Когда вы создаете сессию в PHP с помощью функции session_start(), сервер генерирует уникальный идентификатор сессии (PHPSESSID), который сохраняется в cookie на стороне клиента. Этот cookie является сессионным, то есть он хранится только до тех пор, пока браузер пользователя не будет закрыт.
Как только пользователь закрывает браузер, этот cookie автоматически удаляется, а вместе с ним теряется доступ к данным сессии на сервере. Таким образом, сессия завершается.
Если вам нужно, чтобы данные сессии сохранялись даже после закрытия браузера, можно изменить настройки времени жизни сессионного cookie:
Вы можете установить время жизни для cookie вручную через функцию setcookie() перед вызовом session_start(). Например:
// Устанавливаем время жизни cookie на 30 дней
$lifetime = time() + 60 * 60 * 24 * 30; // 30 дней
session_set_cookie_params([
'lifetime' => $lifetime,
'path' => '/',
'domain' => '',
'secure' => true, // Если используется HTTPS
'httponly' => true, // Защита от XSS атак
]);
session_start();
Также можно настроить это глобально в файле конфигурации PHP (php.ini):
session.cookie_lifetime = 2592000 ; // 30 дней в секундах
Т.е если закрываю браузер и пытаюсь снова считать сессию по ссылке из куки то ее уже нет!! Т.е куки удаляется только почему!! Мне надо чтобы куки вчеными был ибо сессии у меня и так в отдельной папке вечные которые я буду удалять сам по времени своему
сайт lol.ru
lol.ru/createsession.php Вот файл создаю файл с данными сесси так!
<?php
ini_set('session.save_path', './sessme/');
ini_set('session.gc_maxlifetime', 3600*24*30);
ini_set('session.cookie_lifetime', 3600*24*30);
session_start();
$_SESSION['userData'] = [
'id'=>$userData['userData']=session_id(),
'name'=>$userData['userData']='Master',
];
session_start();
$mysessionid = $_SESSION['userData']['id'];
$name = $_SESSION['userData']['name'];
echo "Session Created : " .$mysessionid . " Name " . $name;
?>
Вот так я считываю сессию из другово файла readsession.php все работает до закрытия браузера после закрытия сессия из куки (видимо ссылка на ее ID ) пробовал задать параметр мне надо чтобы сессия постаналивалась по id из куки
session_set_cookie_params(3600); чтобы куки не удалялся после закрытия браузера но нифига что то сломал не понял что замучался уже бесит прямо!!! как то сделал случайно и получилось теперь нет!
то ли ini_set('session.cookie_lifetime', 0) то ли еще что теперь не получается! Помогите пожалуйста замучался!!!!! АЖ ТЕРПРЕЕНИЯ НЕТ!!!
<?php
ini_set('session.save_path', './sessme/'); // Указываю папку сессий
ini_set('session.gc_maxlifetime', 3600*24*30);
ini_set('session.cookie_lifetime', 3600*24*30);
$id = '239850ceb0f65fc855601cf1c9b8d337';
session_id($id);
session_start();
$mysessionid = $_SESSION['userData']['id'];
$name = $_SESSION['userData']['name'];
?>
echo "My Session is : " .$mysessionid . " Name " . $name;