Юзербар с часами

Discussion in 'PHP' started by b3, 17 Feb 2009.

  1. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    На идею подталкнула эта группа http://vkontakte.ru/club6968868 и себе захотел часы в юзербаре) Строго не судить. Все коменты в скрипте, скачать можно тут:
    http://sqlinj.com/svn/userbar_clock.rar
    Превью:
    [​IMG]
    Код:
    PHP:
    <?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:
    <?php
    if(function_exists('imagetypes'))
               echo 
    'GD is loaded';
               else
               echo 
    'GD is not loaded';
    ?>
    Если GD is loaded а скрипт всеравно не работает, тогда:
    PHP:
    <?php
    var_dump
    (gd_info());
    ?> 
    Выдаст чтото типа:
    Возможно что у вас [Font Support"]=> bool(false) тогда прийдеться искать другой хостинг/шелл =) Можно конечно обойтись без шрифта но ето уже не айс.
     
    #1 b3, 17 Feb 2009
    Last edited: 17 Feb 2009
    2 people like this.
  2. Pernat1y

    Pernat1y Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    479
    Likes Received:
    79
    Reputations:
    7
    зачем крон, если картинку можно генерить при каждом обращении?
     
  3. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Pernat1y, а если у тебя очень много мессаг на форумах? и все будут динамически обновляться? тебе свой хост не жалко будет?
     
  4. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    изза этого на ачате и убрали подписи )))
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    вряд ли из-зи этого. Часы - детские шалости, кого интересуют нагрузки на ВАШ хост. Скорее всего убраны из-за многочисленных попыток получить доступ к приват-инфо (IP, Refer и т.д.)
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    b3 Как это не обращусь? Добавить header('Content-type: image/png');
    Вместо imagepng($im,"time.png"); просто imagepng($im); И естественно убрать цикл и слип.
    HTML:
    <img src="ваш_сайт/этот_скрипт.php" />
    Вернет вашу картинку, если не нравится расширение php добавить в htaccess
    Code:
    <Files "имя_скрипта.png">
    AddType application/x-httpd-php .png
    </Files>
    
     
    _________________________
    1 person likes this.
  7. Pernat1y

    Pernat1y Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    479
    Likes Received:
    79
    Reputations:
    7
    пфф. ты свой .php скрипт переименовываешь в img.png, например, и в ту-же папку кладешь .htaccess с
    <Files "img.png">
    AddType application/x-httpd-php .png
    </Files>

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

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

    у меня на игровом форуме похожая штука есть. только она еще через соксы коннектиться к серваку, получает его статус, и рисует картинку. и ничего. не умер )
     
    #7 Pernat1y, 17 Feb 2009
    Last edited: 17 Feb 2009
    1 person likes this.
  8. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    иммено из-за этого.... тока там тема была про репутацию...
    админов... ))
     
    1 person likes this.
  9. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    да не, с ачатом немножго другая ситаиция была.. просто када номер1 выложил юзербар на котором выводилаьс репутация... на ачате многие повесили и на других форумах... вот и представьте какая нагрузка была на сервак... 5чел обновляет тему мало того nxj они сами запрашиваю свою\чужую репу так еще и юзербар ломиться... ну думаю суть понятна..
     
  10. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    ну дык элементарную проверку вставить на рефер и всё, если хост не forum.antichat.ru - exit, делов-то. Я так на всех юзербарах делаю, тырят и обламываются на других-то форумах:)

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

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    ну эт уже не ко мне ))