1. XeNuS - 28 мая 2009 — 00:05 - перейти к сообщению
Нужен один скрипт, смысл которого в том, чтобы он мог ограничивать кол-во людей находящихся на одной странице html. То есть чтобы одновремено можно было выставлять количество! Может кто знает где его взять?
2. 1Bot - 22 ноября 2009 — 14:25 - перейти к сообщению
XeNuS пишет:
Нужен один скрипт, смысл которого в том, чтобы он мог ограничивать кол-во людей находящихся на одной странице html. То есть чтобы одновремено можно было выставлять количество! Может кто знает где его взять?
Может поздновато, но отвечу.
Для страницы нет понятия "одновременно находящиеся на странице" - можно указать промежуток времени, за который страница должна быть скачана не более N раз.
в самое начало странички нужно вставить следующий PHP-код
PHP:
<?php
# настройки счетчика
$count_filename = 'counter.dat'; // имя файла-счетчика
$err_url = 'ваш URL'; // адрес страницы, которая будет выдаваться вместо этой при ограничении
$period = 15*60; // период в секундах (15 минут)
$max_count = 100; // максимальное количество скачивания страницы за период
if (file_exists($count_filename))
{
$f = file($count_filename);
$a = unserialize($f);
$a['counter']++;
if ($a['counter'] > $max_count)
{
$fp = @fopen($count_filename, 'a+');
flock($fp, 2);
fwrite($fp, serialize($a));
fflush($fp);
flock($fp, 3);
fclose($fp);
if ((time() - $a['oldtime']) < $period)
{
header('Location: '.$err_url);
}
else { unlink($count_filename); }
}
}
else
{
$a = array('oldtime' => time(), 'counter' => 1);
$fp = @fopen($count_filename, 'a+');
flock($fp, 2);
fwrite($fp, serialize($a));
fflush($fp);
flock($fp, 3);
fclose($fp);
}
?>
Исправлено
3. drummer69 - 28 ноября 2009 — 22:46 - перейти к сообщению
1Bot пишет:
$count_filename = 'counter.dat'; // имя файла-счетчика
уважаемый, а где взять этот файлик?
4. саня - 27 августа 2011 — 10:49 - перейти к сообщению
Подскажите, а что то подобное для ExBB можно сделать, присваивает класс в зависимости от ответа в теме.
CODE:
// Give the post some class
$forum_page['item_status'] = array(
'post',
($forum_page['item_count'] % 2 != 0) ? 'odd' : 'even'
);
if ($forum_page['item_count'] == 1)
$forum_page['item_status']['firstpost'] = 'firstpost';
if (($forum_page['start_from'] + $forum_page['item_count']) == $forum_page['finish_at'])
$forum_page['item_status']['lastpost'] = 'lastpost';
if ($cur_post['id'] == $cur_topic['first_post_id'])
$forum_page['item_status']['topicpost'] = 'topicpost';
else
$forum_page['item_status']['replypost'] = 'replypost';
$forum_page['item_status'] = array(
'post',
($forum_page['item_count'] % 2 != 0) ? 'odd' : 'even'
);
if ($forum_page['item_count'] == 1)
$forum_page['item_status']['firstpost'] = 'firstpost';
if (($forum_page['start_from'] + $forum_page['item_count']) == $forum_page['finish_at'])
$forum_page['item_status']['lastpost'] = 'lastpost';
if ($cur_post['id'] == $cur_topic['first_post_id'])
$forum_page['item_status']['topicpost'] = 'topicpost';
else
$forum_page['item_status']['replypost'] = 'replypost';