PDA

Просмотр полной версии : Юзербар с часами


b3
17.02.2009, 15:06
На идею подталкнула эта группа http://vkontakte.ru/club6968868 и себе захотел часы в юзербаре) Строго не судить. Все коменты в скрипте, скачать можно тут:
http://sqlinj.com/svn/userbar_clock.rar
Превью:
http://i040.radikal.ru/0902/59/72d2ba04d791.png
Код:

<?php
/*
Нифигасебе Юзербар (с) БэТри нах!!1адин
*/

// Время выполнения скрипта неограничено. Закрытие окна браузера не прирывает выполнение сркипта.
set_time_limit(0);
ignore_user_abort(1);

// Функция цвета как в HTML, для тех кому неудобен вид RGB(255,255,255)
function htmlcolor($im,$color)
{
sscanf($color, "%2x%2x%2x", $red, $green, $blue);
return ImageColorAllocate($im,$red,$green,$blue);
return($c);
}
// Бесконечный цикл (;;)
for (;;) {
// Размер Юзербара
$im = imagecreate(350,20);
// background - тоесть цвет заднего фона Юзербара.
$bg = htmlcolor($im, "424242");
// Цвет текста.
$font_color = htmlcolor($im,"eaffca");
// Попровка по GMT
$GMT = "+2";

list($h,$m,$s) = explode(":",date("H:i:s"));
$h_gmt = $h + $GMT;
$txt = $h_gmt.":".$m.":".$s;
// Примечание: файл с шрифтом (font.ttf) должен лежать в папке с скриптом
imagettftext($im,12,0,8,14,$font_color,"font.ttf",$txt);
// Сохранение изображения в файл time.png
imagepng($im,"time.png");
imagedestroy($im);
// Время обновления изображения, желательно не менять.
sleep(15);
}
?>

Запускать через крон CronJob.ru с интервалом 30 минут, меньше думаю не стоит. Надеюсь кому то пригодится, или натолкнет на мысль) К примеру вот у чувака http://vkontakte.ru/id22671298 на аве все что хочеш =)

Если у вас возникли проблеммы с скриптом, проверьте ваш хостинг:

<?php
if(function_exists('imagetypes'))
echo 'GD is loaded';
else
echo 'GD is not loaded';
?>

Если GD is loaded а скрипт всеравно не работает, тогда:

<?php
var_dump(gd_info());
?>

Выдаст чтото типа:

array(9) {
["GD Version"]=>
string(24) "bundled (2.0 compatible)"
["FreeType Support"]=>
bool(false)
["T1Lib Support"]=>
bool(false)
["GIF Read Support"]=>
bool(true)
["GIF Create Support"]=>
bool(false)
["JPG Support"]=>
bool(false)
["PNG Support"]=>
bool(true)
["WBMP Support"]=>
bool(true)
["XBM Support"]=>
bool(false)
}

Возможно что у вас [Font Support"]=> bool(false) тогда прийдеться искать другой хостинг/шелл =) Можно конечно обойтись без шрифта но ето уже не айс.

Pernat1y
17.02.2009, 15:22
зачем крон, если картинку можно генерить при каждом обращении?

blaga
17.02.2009, 15:35
Pernat1y, а если у тебя очень много мессаг на форумах? и все будут динамически обновляться? тебе свой хост не жалко будет?

Zitt
17.02.2009, 15:47
зачем крон, если картинку можно генерить при каждом обращении?
изза этого на ачате и убрали подписи )))

Pashkela
17.02.2009, 15:54
изза этого на ачате и убрали подписи )))


вряд ли из-зи этого. Часы - детские шалости, кого интересуют нагрузки на ВАШ хост. Скорее всего убраны из-за многочисленных попыток получить доступ к приват-инфо (IP, Refer и т.д.)

Gifts
17.02.2009, 17:38
b3 Как это не обращусь? Добавить header('Content-type: image/png');
Вместо imagepng($im,"time.png"); просто imagepng($im); И естественно убрать цикл и слип. <img src="ваш_сайт/этот_скрипт.php" /> Вернет вашу картинку, если не нравится расширение php добавить в htaccess
<Files "имя_скрипта.png">
AddType application/x-httpd-php .png
</Files>

Pernat1y
17.02.2009, 18:35
пфф. ты свой .php скрипт переименовываешь в img.png, например, и в ту-же папку кладешь .htaccess с
<Files "img.png">
AddType application/x-httpd-php .png
</Files>

и дальше инклудишь как обычную картинку
http://site/img.png

зы. если боимся, что заДДоСят, то врубаем кэш с определенным временем жизни )

Pernat1y, а если у тебя очень много мессаг на форумах? и все будут динамически обновляться? тебе свой хост не жалко будет?

у меня на игровом форуме похожая штука есть. только она еще через соксы коннектиться к серваку, получает его статус, и рисует картинку. и ничего. не умер )

Zitt
17.02.2009, 19:12
вряд ли из-зи этого. Часы - детские шалости, кого интересуют нагрузки на ВАШ хост. Скорее всего убраны из-за многочисленных попыток получить доступ к приват-инфо (IP, Refer и т.д.)
иммено из-за этого.... тока там тема была про репутацию...
кого интересуют нагрузки на ВАШ хост.
админов... ))

Zitt
17.02.2009, 20:12
да не, с ачатом немножго другая ситаиция была.. просто када номер1 выложил юзербар на котором выводилаьс репутация... на ачате многие повесили и на других форумах... вот и представьте какая нагрузка была на сервак... 5чел обновляет тему мало того nxj они сами запрашиваю свою\чужую репу так еще и юзербар ломиться... ну думаю суть понятна..

Pashkela
17.02.2009, 20:22
ну дык элементарную проверку вставить на рефер и всё, если хост не forum.antichat.ru - exit, делов-то. Я так на всех юзербарах делаю, тырят и обламываются на других-то форумах:)


$otkuda=getenv("HTTP_REFERER");
$patern = "/^(http:\/\/)?([^\/]+)/i";
$otkuda1 = preg_match($patern, $otkuda, $rezz);
if ($rezz[2]=="forum.antichat.ru")
{
....
}
else exit;

Zitt
17.02.2009, 20:31
ну эт уже не ко мне ))