Показать сообщение отдельно
Старый 28.04.2005, 12:05     # 35
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Vaston509:
да, так намного лучше.
Как "так"? Правильно скопировав пример???

Цитата:
Vaston509:
Но теперь другая проблема, например, устанавливаю я timeout=180, что соответсвует 3 мин.
Если пользователь находится на странице дольше чем 3 мин, то его со страницы не выбрасывает, а другим пользователям доступ открывается.
А об этом я уже говорил - когда пользователь загрузил страницу и пялится на нее 2 часа, ничего не делая, естественно нет возможности на сервере узнать что он делает, и не ушел ли вообще!!! Для этого и предложено было решение с обновлением iframe.

Короче, насколько я понял, это будет нескончаемо длиться, пока не напишет кто-то готового решения:

Файл lock.php:
PHP код:
<?
session_start();
$timeout = '10'; //Таймаут в секундах

$time = @stat('lock');

    if ( (is_file('lock') and file_get_contents('lock')==session_id()) or $time[9]+$timeout < date('U')){
    $ff = fopen('lock', 'w');    //В любом случае
    fwrite($ff, session_id());    //перезаписываем
    fclose($ff);        //для обновления даты
    echo 'Доступ разрешен, страница свободна';
    echo '<iframe src=fresh.php></iframe>';//Будем поддерживать соединение
    }
    else{
    echo 'Извините, страница уже используется';
    }
?>
Файл fresh.php:
PHP код:
<meta http-equiv=Refresh content="8; URL=fresh.php">
<?
exec('touch lock');
?>
Все проверено, все работает, ничего менять больше не нужно в логике. Естественно можно поменять таймауты и оформление фрейма (думаю его стоит скрыть вообще). Да, таймаут обновления фрейма лучше ставить 80-90% от того что в файле lock.php.

И последнее, в догонку: Если вдруг на сервере нету комманды touch, или вдруг вообще нельзя выполнять комманды, то вместо этого можно просто перезаписать файл тем же самым содержимым.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 28.04.2005 в 12:07.
Hubbitus вне форума