|
|
|
|
|
для: А-я
(31.01.2008 в 17:08)
| | Спасибо, буду пробовать! | |
|
|
|
|
|
|
|
для: Freddie_X
(31.01.2008 в 14:19)
| | Ну, конечно... Результат из бд будет быстрее. Чем проверка существование файлов на диске. А еще лучше отдельная статистическая таблица. | |
|
|
|
|
|
|
|
для: а-я
(31.01.2008 в 04:06)
| | То есть проверять не наличие сессии, а записи в таблице session? | |
|
|
|
|
|
|
|
для: Freddie_X
(30.01.2008 в 19:07)
| | если на сайте будет много людей, то сайт будет тормозить....
зачем вам удалять вовремя сессии? достаточно проверку из БД. что с таким сидом. человек уже ушел. его время вышло и ему надо по новой записать....
выводить данные о онлайн Вы же будете из БД. а не по тому сколько файлов у Вас.
поэтому удалять файлы можно и 1 раз в час, главное чтоб в БД было обновление.
и то можно не делать обновление БД на всех страничках, а только на тех где вам необходимо указать статистику... т.е. перед выводом онлайн. | |
|
|
|
|
|
|
|
для: hell_riser
(30.01.2008 в 21:05)
| | 1440 сек = 24 мин.
Маловато... | |
|
|
|
|
|
|
|
для: Freddie_X
(30.01.2008 в 20:55)
| | Нет, полагайтесь на значение установленное в php.ini
Вы к стати посмотрите (phpinfo()) какое там время выставлено | |
|
|
|
|
|
|
|
для: hell_riser
(30.01.2008 в 20:40)
| | А если на каждой странице поставить ini_set(). Тогда будет работать?
А если нет доступа к php.ini? Только таким способом... | |
|
|
|
|
|
|
|
для: Freddie_X
(30.01.2008 в 19:07)
| | >2) Для удаления сессии нашёл вот такое
>
ini_set('session.gc_maxlifetime', 60);
|
>Поставил 60 секунд, чтобы проверять умирает ли сессия, чтобы долго не ждать.
>Вставил эту строку перед объявлением переменной сессии ($_SESSION['id'] = "text"), но она не хочет удаляться после минуты бездействия. Что не так делаю?
На сколько я понимаю ф-ция ini_set() меняет параметр конфигурации только на время выполнения скрипта и в вашем случае бесполезна, хотя можете заставить скрипт работать 20 минут ;) )).
Лучше измените сам php.ini, а вообще там по умолчанию итак 20 мин стоит обычно. | |
|
|
|
|
|
|
|
для: Саня
(30.01.2008 в 17:56)
| | Вот отрывок из кода:
<?php
$id_session = session_id();
$ses = mysql_query("SELECT * FROM session WHERE id_session = '$id_session'");
if(mysql_num_rows($ses)>0)
{
mysql_query("UPDATE session SET putdate = NOW() WHERE id_session = '$id_session'");
}
else
{
$query = mysql_query("INSERT INTO session VALUES('$id_session',NOW(),$id)");
}
mysql_query("DELETE FROM session WHERE putdate < NOW() - INTERVAL '20' MINUTE");
?>
|
1) Получается, что если не обращаться к этому скрипту, запись из таблицы session не удалится?
Значит надо, чтобы другой пользователь обратился к этому скрипту, чтобы удалить записи сессий?
2) И ещё, как удалить сессию по истечении 20 минут, если к ней не было доступа. Так чтобы из таблицы стиралась запись, а сессия удалялась.
1) Уже разобрался.
2) Для удаления сессии нашёл вот такое
ini_set('session.gc_maxlifetime', 60);
|
Поставил 60 секунд, чтобы проверять умирает ли сессия, чтобы долго не ждать.
Вставил эту строку перед объявлением переменной сессии ($_SESSION['id'] = "text"), но она не хочет удаляться после минуты бездействия. Что не так делаю? | |
|
|
|
|
|
|
|
для: Саня
(30.01.2008 в 17:56)
| | Спасибо! | |
|
|
|
|