Forum Webscript.Ru
Программирование => PHP => Тема начата: sublimity от 25 Ноября 2005, 14:00:52
-
Необходимо разработать систему блокирования доступа к странице в режиме онлайн, для этого я использую следующую функцию:
function ONLine($mixed,$userID)
{
if ($mixed==-1)
{
$ret=array();
$r=mysqlq("SELECT object,user_id FROM online WHERE user_id!=$userID",0,1);
while($c=mysql_fetch_array($r,MYSQL_NUM))
{
$ret[$c[1]]=$c[0];
}
return $ret;
}
else
{
mysqlq("DELETE FROM online WHERE last_access<".(time()-125)." or session_id=\'".session_id()."\'");
mysqlq("INSERT INTO online (session_id,last_access,user_id,object) VALUES(\'".session_id()."\',".time().",".$userID.",\'".addslashes(serialize($mixed))."\');");
}
}
Она используется как для записи так и для чтения,
где
$userID – это индификатор залогиненого пользователя
$mixed – это ассоциативный массив.
Использую ее следующим образом в index.php:
В начале
$O=ONLine(-1,$user->DATA[\'Id\']);
foreach ($O as $k=>$v) $ONLINE[$k]=@unserialize($v);
В конце :
ONLine($ONLINECURENT,$user->DATA[\'Id\']);
В коде проверяю следующей схемой:
$GLOBALS[\'ONLINECURENT\'][\'QUOTA\']=$m5;
//$m5-особый параметр , который уникальный для каждой странице
if (sizeof(@$ONLINE))
foreach ($ONLINE as $k=>$v)
{
if (@array_key_exists(\'QUOTA\',$v))
if ($v[\'QUOTA\']==$m5)
{
Die(‘Доступ закрыт!’);
// BLA-BLA-BLA-BLA
}
}
Но это схема работает криво.
Буду благодарен за помощь в решении проблемы!
-
объясни сначала, что ты называешь блокированием доступа.
-
Когда один клиент просматривает "страницу" с укинальным ID , то другой не может получить доступ к этой же "странице".
Как только первый закончил просматривать , то другой может получить доступ.....
Грубо структура такая:
Каталог\\Стр1
Каталог\\Стр2
....
Каталог\\СтрN
-
sublimity:
Когда один клиент просматривает "страницу" с укинальным ID , то другой не может получить доступ к этой же "странице".
это ещё зачем?
что за страницы?
-
RomikChef
Что не понятно то????
Зачем , это вопрос тысячный.....
Что за страницы , да обычный код на пхп данные из базы преобразованные в хтмл :) вызванные по /blabla/?id=XX
-
ну, раз тысячный, то и не парься.