PDA

Просмотр полной версии : индикатор нахождения на форуме для хомяка


Дикс
28.05.2006, 18:53
$in = fopen("http://forum.antichat.ru/index.php", 'r');
$buff = fgetss($in,500);
for ($i=0;$i<2000;$i++)
$buff .= fgetss($in,1000);

$str_exp = explode("Кто онлайн?", $buff);
$str_exp2 = explode("Форум АНТИЧАТ статистика", $str_exp[1]);
$mystr = $str_exp2[0];

if (stristr($mystr, "Дикс"))
echo ("Читает Античат");


убивает тока то, что надо качать кучу левого текста.
может админ создаст отдельный файл содержащий в себе блок "Кто онлайн?" ?

k1b0rg
28.05.2006, 19:06
а чо админам больше делать нечего?

Дикс
28.05.2006, 19:12
а что их занятость - не допускает даже вопросов в их адрес?
может тут слово адм*н вообще употреблять запрещено?

Trinux
28.05.2006, 19:43
Дикс, у админов куча своей работы, порой далеко не свзанной с античатом. Не надо тут выеживаться и гнать на админов =)))

http://forum.antichat.ru/online.php?
всего-то 40 килов, не так и много.

Дикс
28.05.2006, 21:11
=))
1. когда читаешь онлайнпхп с другого сервака - тебя перекидывает на индекс.
второе - я юзаю fgetss, а значит все теги режутся. итого 4 кб.
: )))
вобщем это я так спросил.

лушче скажите, как вам сама идея-то?

Talisman
28.05.2006, 21:22
=))
1. когда читаешь онлайнпхп с другого сервака - тебя перекидывает на индекс.
второе - я юзаю fgetss, а значит все теги режутся. итого 4 кб.
: )))
вобщем это я так спросил.

лушче скажите, как вам сама идея-то?
а реферер слабо подделать?

Trinux
28.05.2006, 21:29
2 Talisman
Правильное направление =)))

2 Дикс
юзай fsockopen() и не занай проблем =))))

Дикс
28.05.2006, 21:54
ыы %) да вы сорцы буллетина откройте,
первое - там проверки на пару переменных стоят, мне лень их подделывать,
а второе - в выводе онлайн.пхп тоже куча всякого говна.
пусть уж лучше 4кб индекса качает.

хотя интересная мысль про подделку реферрера :)
попытаюсь булку на денвере обмануть

Дикс
28.05.2006, 21:58
кстати ммой код объявили ддосом = )))))))
вот ссылка, но там регаться надо чтоб прочитать:
http://cs-mapping.com.ua/forum/showthread.php?p=87353#post87353

Думаю у всех на хомяках [user].cs-mapping.com.ua есть пхп.
Теперь можно сделать индикатор присутствия на форуме.
Т.е. если вы в данный момент читаете форум, индикатор на сайте будет это указывать.

от 1m.dm ТЫ ИЗВРАЩЕНЕЦ! Задосить хочешь хостинг наш?
Ужасный код, я его скрыл. Не удалил только для ознакомления. НЕ ЮЗАЙТЕ! лучше написать правильно, если так нужно...

ты бы еще посоветовал всем sleep(60); повставлять... м-да уж..


[ Скрытый текст ]
Один минус - чтобы определить наличие юзера, приходится качать скриптом кучу левого текста (хоть и 4 кб, всё равно атстойно). Был бы очень признателен трупаку, если бы он вынес текст блока "Сейчас на форуме" с главной странички в отдельный файл, чтобы там был лишь список активных юзеров.

А вот код:
Код:

$in = fopen("http://cs-mapping.com.ua/forum/index.php", 'r');
$buff = fgetss($in,500);
for ($i=0;$i<2000;$i++)
$buff .= fgetss($in,1000);
$str_exp = explode("Сейчас на форуме", $buff);
$str_exp2 = explode("Статистика форума", $str_exp[1]);
$mystr = $str_exp2[0];

if (stristr($mystr, "Дикс"))
echo ("Читает КСМ");

Последние две строки - это и есть индикатор.
Основной код можно поместить куда угодно на странице,
надо лишь заключить его в тег <?php КОД ?>,
а последние две строчки вставить туда, где вы хотите видеть индикатор.
Вместо "Дикс" можно ставить любой другой ник, независимо от регистра,
а вместо текста "Читает КСМ" - любой html-код, любую картинку,
не нарушая последовательность открывающих и закрывающих кавычек
(либо используя \" в тегах)

Вариант два - вставить такой код (это я всё разжёвываю кто совсем не шарит в пхп)

<?php if (stristr($mystr, "Дикс")) { ?>

Читает КСМ

<?php } ?>
Теперь вставляйте любой код в этот блок и всё

ЗЫ если трупак выполнит мою просьбу, изменю основной код до 3-4 строк =]

если я на форуме - выводит

ЗЫ щас я уже код поправил сильно, вот чего получилось:
<?php
function online($forum, $nick, $s1="Сейчас на форуме", $s2="Статистика форума", $error='can`t load forum page')
{
if (!stristr($forum, "http://"))
$forum = "http://".$forum;

$status = 0;

$in = @fopen($forum, 'r')or die ($error);
$buff = 0;
while (!feof($in)) {
$buff .= fread($in, 4096); // читаем по 4КБ
}

$piece1 = explode($s1, $buff);

if (count($piece1) > 1)
{
$piece2 = explode($s2, $piece1[1]);
stristr($piece2[0], $nick)?$status = 1:$status = 0;
}
return $status;
}
?>

Rebz
28.05.2006, 22:00
>попытаюсь булку на денвере обмануть
это значит что у тебя уже есть исходник скрипта "кто в онлайн".. ну если по логике вещей.. зачем у админов просить?

Дикс
29.05.2006, 13:24
так я прошу создать новый скрипт на серваке, лучше даже такой, который выдаёт
инфу о юзере по принципу:
user.php?user=deex
online|offline|bad user

ЗЫ исходники скрипта есть в любых сорцах третьего буллетина