Скрипт Для Линеечек

N

Nooler

Guest
Хочу сделать линеечки для своего сайта...ну примерно такие как моя в подписи сейчас стоит...
Линейки есть...персонажи тоже,вот только встал вопрос как это всё дело сделать???
Я знаю что там какой-то скрипт прописывать надо...
расскажите пожалуйта какой (если хотяб есть стандартный,чтоб знать какой искать) или как его написать? :pardon:

<font size=\"1\">Добавлено Nooler, [mergetime]1139651678[/mergetime]</font>
И ещё вопрос о линейках

Скажите пожалуйста,
что за система такая,как её прописать...в линейках...
Вот главная страница ТУТ
а как сделать так чтоб дальше по выбраным позициям выводился код?как прописать?
это линейки...наподобии вот ЭТИХ
после выбраной картинки и линейки жмёшь дальше и получаешь код...как это сделать?это продолжение...
код написать я могу конечно,а вот додумкать как эт дело провернуть не получается :)
и ещё...как получить уже в примере(всё так же с кодом) линейку? :)
 

GoDleSS

Пользователь
Никогда не возился с этими "линеечками". Подробнее опишите что и как и откуда :pardon: Т.е. что вводим и что получаем...
 
N

Nooler

Guest
Вот пример http://metric.extra.by/
1. Выбираем линеечку которая понравилась
2. далее картинку
3. Пишем текст для линеечки
4. выбираем дату...
5. жмём далее и у нас появляется код который можно вставить либо на сайт,либо в подпись(попустим в тех же самых форумах)

Как я выше писала,главная страница с линейами,картинками,числами и полем для ввода текста у меня есть,но вот как прописать код который должен появиться когда человек выберет всё...(т.е 5пункт действий) я не знаю :)
Как это прописывается?как сделать так чтоб при нажатии кнопки далее выводился код,и даже пример этой самой линейки по коду... :pardon:
 

GoDleSS

Пользователь
Принцип работы системы в целом такой:
Данные формы передаются ПХП-скрипту, рассположенному по адресу http://metric.extra.by/index.php (собственно сама форма в нем же). Он их обрабатывает и в зависимости от указанных типов генерирует картинку, где:
1. Фон - линейка
2. Картинка(средний слой) - бегунок, размещается по расчетам относительно начала и зависит от условий вычисления
3. Надпись(верхний слой) - понятно что =)
Картинка генерируется с помощью какой-то из библиотек по генерации графики, скорее всего Image Magick.

Писать такой систему самому не самое приятное занятие, но можно использовать готовый сервис, генерируя только код.
Для этого разложим имя:
line_line_typew5_s.gif_beg_d_type24.gif_time_1136066400_text_%C3%FB%E3.jpg
на пары ключ -> значение
line -> line_typew5_s.gif
beg -> d_type24.gif
time -> 1136066400
text -> %C3%FB%E3

и добавим в конец .jpg )
Но если с первыми 3-мя парами все понятно, то значение второй странно выглядит =)
Не пугаться - это всего лишь текст в кодировке unicode(UTF-8).
Как же нам перегнать наш красивый русский текст в юникод?! Достаточно передать параметр GET-методом, а при приеме не дешифровывать, браузер сам переведет в юникод :pardon:

Вот краткая история.

Собственно форму можно скопировать, а скрипт генерации кода элементарный. На перле могу накидать, при условии, что поддерживается =)
Конечно можно сделать это вообще на яваскрипт и даже страницу перезагружать не придется, только лень :)
 
N

Nooler

Guest
GoDleSS
А на php могёшь?
и на перле напиши пожалуйста,если не сложно. :diespam:
Спасибки за инфу,хоть такую,вообще чего-то мало кто хочет говорить на эту тему и мало кто знает... :)
 

GoDleSS

Пользователь
На ПХП не пишу и не считаю что стоит :diespam:

на перле обработчик будет выглядеть примерно так:
Код:
#!/usr/bin/perl

my %param=get_qstr();
my $time=maketime($param{'y'},$param{'m'},$param{'d'});

print <<HTML;
Content-type:text/html;Charset: windows-1251;


<html>
 <head>
  <title>- Заголовок -</title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
 </head>

 <body>
  <img src="http://metric.extra.by/line_$param{'l'}\_beg_$param{'b'}\_time_$time\_text_$param{'t'}.jpg">
  $time ? 1138831200
 </body>
</html>
HTML

sub maketime {
 my ($pyear,$pmon,$pday):)_;

 if ($pmon==1) {
  $pmon=0;
 } elsif ($pmon==2) {
  $pmon=31;
 } elsif ($pmon==3) {
  $pmon=59;
 } elsif ($pmon==4) {
  $pmon=90;
 } elsif ($pmon==5) {
  $pmon=120;
 } elsif ($pmon==6) {
  $pmon=151;
 } elsif ($pmon==7) {
  $pmon=181;
 } elsif ($pmon==8) {
  $pmon=212;
 } elsif ($pmon==9) {
  $pmon=243;
 } elsif ($pmon==10) {
  $pmon=273;
 } elsif ($pmon==11) {
  $pmon=304;
 } elsif ($pmon==12) {
  $pmon=334;
 }

 my $time=($pyear-1970)*365.25*24*3600+$pmon*24*3600+($pday-1)*24*3600;

 return $time;
}

sub get_qstr {
 my %param;
 my ($i,$buf,@data);

 $buf=$ENV{'QUERY_STRING'}; 

 @data=split(/&/,$buf);
 foreach $i (0 .. $#data) { 
  @_=split(/=/,$data[$i]);

  $_[0]=~s/%(..)/pack("C",hex($1))/eg;
  unless ($_[0] eq 't') {$_[1]=~s/%(..)/pack("C",hex($1))/eg;}

  $param{$_[0]}=$_[1];
 }

 return %param;
 ($i,@data,$buf,@_,%param)=();
}

Форму прям с метрик.екстра тырим.
Единственная фича - отклонение времени примерно на 2 часа, но эт фигня, можно будет еще поиграть с формулой =)
Просто в ПХП ф-ция времени от 1970-го считает, а в перле от 1900 и подходы чуть разные...

Насчет "мало кто знает": знающий человек разберется, а не знает это почти никто, в том числе и я =)
 
N

Nooler

Guest
GoDleSS
извени за глупый вопрос...но я пока ток учусь...поэтому пока многое не знаю...
Куда это дело вставлять? :diespam:


<font size=\"1\">Добавлено Nooler, [mergetime]1139837908[/mergetime]</font>
Чего-то не раотает это дело.... :)
Там что-то не правельно... :)
 

GoDleSS

Пользователь
У меня все работает =) Выпиши сюда ошибку, которую скрипт выдает...
 

GoDleSS

Пользователь
вот так оно полно выглядит:
Код:
#!/usr/bin/perl

my %param=get_qstr();
my $time=maketime($param{'y'},$param{'m'},$param{'d'});
my $link="http://metric.extra.by/line_$param{'l'}\_beg_$param{'b'}\_time_$time\_text_$param{'t'}.jpg";
print <<HTML;
Content-type:text/html;Charset: windows-1251;


<html>
 <head>
  <title>Линеечка</title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
 </head>

 <body background="http://nooler.narod.ru/1764A209.gif">
<font style="font: 12px Comic Sans MS; Color: #FFFFFF">
  <img src="$link">

<b>HTML код:</b>

     &lt;a href="http://metric.extra.by"&gt;&lt;img src="$link" border=0 &gt;&lt;/a&gt;


<b>FORUM код:</b>

[url=http://metric.extra.by][IMG] $link [/IMG][/url]
</font>
 </body>
</html>
HTML

sub maketime {
 my ($pyear,$pmon,$pday):(_;

 if ($pmon==1) {
  $pmon=0;
 } elsif ($pmon==2) {
  $pmon=31;
 } elsif ($pmon==3) {
  $pmon=59;
 } elsif ($pmon==4) {
  $pmon=90;
 } elsif ($pmon==5) {
  $pmon=120;
 } elsif ($pmon==6) {
  $pmon=151;
 } elsif ($pmon==7) {
  $pmon=181;
 } elsif ($pmon==8) {
  $pmon=212;
 } elsif ($pmon==9) {
  $pmon=243;
 } elsif ($pmon==10) {
  $pmon=273;
 } elsif ($pmon==11) {
  $pmon=304;
 } elsif ($pmon==12) {
  $pmon=334;
 }

 my $time=($pyear-1970)*365.25*24*3600+$pmon*24*3600+($pday-1)*24*3600;

 return $time;
}

sub get_qstr {
 my %param;
 my ($i,$buf,@data);

 $buf=$ENV{'QUERY_STRING'}; 

 @data=split(/&/,$buf);
 foreach $i (0 .. $#data) { 
  @_=split(/=/,$data[$i]);

  $_[0]=~s/%(..)/pack("C",hex($1))/eg;
  unless ($_[0] eq 't') {$_[1]=~s/%(..)/pack("C",hex($1))/eg;}

  $param{$_[0]}=$_[1];
 }

 return %param;
 ($i,@data,$buf,@_,%param)=();
}
 

GoDleSS

Пользователь
Хехе, ну можно изучить несколько подобных сервисов и накидать универсальную библиотечку... Ток для этого придется ввести шаблоны! А потом объяснять народу как ими пользоваться?! ЩАААААААААААЗЗЗЗЗЗЗЗЗ
 

GoDleSS

Пользователь
Предложи вариант универсального пересыльщика данных без шаблонов, чтобы работал с незнакомыми ему сервисами :yahoo:
P.S. Ссылочка то не открывается... Да и не предполагаю там ничего найти интересного, т.к. на h*.ru сервер-сценарии пашут только в папке cgi... Хотя если PHP, ну да какая разница, если не открывается =)
 
N

Nooler

Guest
GoDleSS
Всё работает :D ,незнаю почему у тя не открывается... :blink:
Я даж себе сделала наконец линейки и счастлива :good: ,сбылась мечта идиота! :D
Воть ссылка кстати ТУТ

Огромное спасибо wind,она гений!!! :good: :good: :good:
^_^
 

GoDleSS

Пользователь
Wind может и молодец, не спорю. Ток вот эти скрипты работают по разному принципу, так что спор предыдущий был бесполезным...

В моем случае юзается чужой сервис, здесь же свой...
Wind нашла видать где-то готовый скрипт формирования картинки-линеечки.

Едиственный совет - поставить обработчик ошибок, чуть неверный запрос и мы видим
Код:
Warning: imagecreatefromgif(lines/.gif): failed to open stream: No such file or directory in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 42

Warning: imagecreatefromgif(begs/.gif): failed to open stream: No such file or directory in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 43

Warning: imagesy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 45

Warning: imagesy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 45

Warning: imagesx(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 46

Warning: imagecreate(): Invalid image dimensions in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 49

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 50

Warning: imagefill(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 51

Warning: imagecolortransparent(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 52

Warning: imagesy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 58

Warning: imagesx(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 58

Warning: imagesy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 58

Warning: imagecopy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 58

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 59

Warning: imagesx(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 60

Warning: imagesy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 60

Warning: imagesx(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 60

Warning: imagesy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 60

Warning: imagecopy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 60

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 61

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 66

Warning: imagettftext(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 66

Warning: Cannot modify header information - headers already sent by (output started at /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php:42) in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 69

Warning: imagegif(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 71

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/m/mamochka.h16.ru/WWW/lines2/lines2/test.php on line 72
ПХПшники, к сожалению, почти никогда не думают о безопасности...

Ну да лан, не мое дело.

Нужен был сценарий посредник между формой и сервисом - я сделал. Претензии предъявлять в данном случае глупо )
Так что мадам Wind - вы молодец, но с предъявлениями гуляем )

http://mamochka.h16.ru/lines2/lines2/
и
http://mamochka.h16.ru/lines2/
разные адреса, извиняйте, читать мысли не научился до сих пор )
 

wind

Пользователь
2[/b]GoDleSS[/b] с замечанием про ошибки согластна, нет времени править...
Писала сама, и впредь попрошу свои домыслы оставлять при себе, вы меня оскорбили, я программированием занималась когда вы еще пешком под стол ходили, гуру perl'овый... И не надо мена php'ником называть я от web-программирования далека, это собствено первый скрипт на php и думаю единственный...
http://mamochka.h16.ru/lines2/lines2/
и
http://mamochka.h16.ru/lines2/
разные адреса, извиняйте, читать мысли не научился до сих пор )
Я указала адрес: http://doomer.h16.ru/line2/
Nooler: http://mamochka.h16.ru/lines2/lines2/
где вы траву берете??

И еще:
[quote name=\'GoDleSS\' date=\'12.2.2006, 3:12\']Не пугаться - это всего лишь текст в кодировке unicode(UTF-8).[/quote]хороша травка... Вы о том unicode двухбайтная кодировка подумали, гуру...
 

GoDleSS

Пользователь
[quote name=\'wind\' date=\'17.3.2006, 15:20\']2[/b]GoDleSS[/b] с замечанием про ошибки согластна, нет времени править...
Писала сама, и впредь попрошу свои домыслы оставлять при себе, вы меня оскорбили, я программированием занималась когда вы еще пешком под стол ходили, гуру perl'овый... И не надо мена php'ником называть я от web-программирования далека, это собствено первый скрипт на php и думаю единственный...[/quote]

За оскорбление извиняюсь!!!

Гуру, не гуру, но 5 лет тоже стаж(школьный бред не считаю)... Никогда себя так не называл, потому как знаю, что сколько бы этой фигней не маялся - всегда смогу научиться чему-нибудь еще!
И не perl'овый, т.к. занимаюсь далеко не одним перлом(и не только языками высокого уровня, ASM тоже нравится, только скорее PASM - ассемблер для интерпритатора, а не процессора), хоть это и любимый язык.

Интересно, под стол пешком в дестве раннем ходят, вы лет 18 так программируете?! Тогда склоняю колени. Хоть и сомневаюсь, учитывая возраст в анкете и ситуацию вокруг компов в конце
-х.

+добавлю: резкая неосмотрительная реакция с моей стороны по причине неависти к людям, которые мнят из себя, даже если они и правда гуру! А особенно к тем, кто вы***вается ничего не стоя.
В следующий раз попрошу гневные письма слать в личку.

[quote name=\'wind\' date=\'17.3.2006, 15:20\']Я указала адрес: http://doomer.h16.ru/line2/
Nooler: http://mamochka.h16.ru/lines2/lines2/
где вы траву берете??[/quote]
Не досмотрел, смысла не меняет - тот адрес был мертвым!

[quote name=\'wind\' date=\'17.3.2006, 15:20\']И еще:
хороша травка... Вы о том unicode двухбайтная кодировка подумали, гуру...
[post=\"25976\"]<{POST_SNAPBACK}>[/post]​
[/quote]
Согласен, моя ошибка - 2хбайтник, т.е. UTF-16.

А травки бы хотелось, давно не курил - расслабиться надо ;)

С уважением, CheRt[aka_GoDleSS]
 
L

Lyona

Guest
Хочется поднять эту тему. Прочитала с самого начала, но так толком и не поняла как в итоге были сделаны эти линеечки?
 
Сверху