26.11.2009, 16:21 | #1 |
Эксперт
Регистрация: 02.09.2008
Адрес: РФ
Сообщений: 1,007
Вес репутации: 225
|
Нужно написать Микро PERL (cgi) Скрипт :)
Возникла проблема) Нужно написать маленький Perl скрипт для сайта а я не разбираюсь в этом давно уже))
Вообщем нужно сделать так: есть файл index.pl лежит в domen.ru/cgi-bin/index.pl при запросе domen.ru/cgi-bin/index.pl?action=main должна открываться одна страничка при запросе domen.ru/cgi-bin/index.pl?action=info должна открываться другая) всего страничек надо 3 ) лучше чтоб они открывались один в один из файлов типа main.html info.html - сделать вообщем нужно что то типа include как в php Кто возьмётся?) Даже заплачу 50 WMR норм?) Помогите |
26.11.2009, 17:34 | #2 |
Мне повезёт!
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
|
Плюньте вы на этот Perl, некрофилия еще никого до добра не доводила.
Да и URL domen.ru/cgi-bin/index.pl?action=main в 21м веке должно быть стыдно на сайте иметь...
__________________
If it's not great, it's not the end. |
26.11.2009, 20:01 | #4 |
Специалист
Регистрация: 20.08.2009
Сообщений: 115
Вес репутации: 195
|
Если я все правильно понял, то можно так:
#!/usr/bin/perl -w use Fcntl; $method=$ENV{'REQUEST_METHOD'}; if ($method eq "POST") {read(STDIN,$form_data,$ENV{'CONTENT_LENGTH'});} else {$form_data=$ENV{'QUERY_STRING'};} @pairs=split(/&/,$form_data); foreach $pair (@pairs) { ($name,$value)=split(/=/,$pair); $ddd{$name}=$value; } if (exists $ddd{'action'}) { print "Location: http://www.site.ru/".$ddd{'action'}.".html\n\n"; exit; } откроются странички типа main.html и т.д. Не пинайте - я не особый знаток perl'а |
26.11.2009, 22:13 | #6 |
Специалист
Регистрация: 20.08.2009
Сообщений: 115
Вес репутации: 195
|
тогда вот так
#!/usr/bin/perl -w use Fcntl; $pth=$ENV{'SCRIPT_FILENAME'}; $pth=~s/cgi-bin.*//; # я так внутренний путь к папке с файлами html вычисляю print "Content-type: text/html;charset=Windows-1251\n\n"; #print $pth; $method=$ENV{'REQUEST_METHOD'}; if ($method eq "POST") {read(STDIN,$form_data,$ENV{'CONTENT_LENGTH'});} else {$form_data=$ENV{'QUERY_STRING'};} @pairs=split(/&/,$form_data); foreach $pair (@pairs) { ($name,$value)=split(/=/,$pair); $ddd{$name}=$value; } if (exists $ddd{'action'}) { #print "Location: http://www.site.ru/".$ddd{'action'}.".html\n\n"; exit; open FO, "<".$pth.$ddd{'action'}.".html"; @html= <FO>; close FO; foreach (@html) { print; } } exit; файлы .html лежат в корневой Добавлено через 20 минут и можно заменить foreach (@html) { print; } на print @html; Последний раз редактировалось pluto; 26.11.2009 в 22:13. Причина: Добавлено сообщение |
27.11.2009, 01:53 | #7 |
Мастер
|
перл да ну его!
пхп рулит, а пхп 6 всем покажет Добавлено через 1 минуту вот мот пригодится ссылка http://bishome.ru/load/358 Последний раз редактировалось Neveykov; 27.11.2009 в 01:53. Причина: Добавлено сообщение |
01.12.2009, 01:05 | #8 |
Эксперт
Регистрация: 02.09.2008
Адрес: РФ
Сообщений: 1,007
Вес репутации: 225
|
Чёто ничё не катит) вот нашёл и переписал сам скрипт)
#!/usr/bin/perl $temp=$ENV{'QUERY_STRING'}; @pairs=split(/&/,$temp); foreach $item(@pairs) { ($key,$content)=split (/=/,$item,2); $content=~tr/+/ /; $content=~ s/%(..)/pack("c",hex($1))/ge; $fields{$key}=$content; } print "Content-type: text/html\n\n"; open (HEAD, "header.txt"); @head = <HEAD>; close (HEAD); foreach $line (@head) { print "$line"; } open(NUMBER, "$fields{'action'}"); @text = <NUMBER>; close(NUMBER); foreach $line (@text) { print "$line"; } open (FOOT, "footer.txt"); @foot = <FOOT>; close (FOOT); foreach $line (@foot) { print "$line"; } == рядом лежат footer.txt header.txt и также любой файл который надо открыть как HTML например index.html при запросе file.pl?action=index.html откроется header.txt+index.html+footer.txt Всё )) |
01.12.2009, 08:26 | #9 |
Специалист
Регистрация: 20.08.2009
Сообщений: 115
Вес репутации: 195
|
|
03.12.2009, 09:29 | #10 | |
Специалист
Регистрация: 10.11.2009
Сообщений: 231
Вес репутации: 182
|
(Пока отвечал - esetnod удалил свой вопрос )
Цитата:
Код:
open(D, "a.txt"); $txt = join('', <D>); $txt =~ s/version=(\d+)/if($1>$max){$max=$1}/gies; print $max; Код:
import re print max(map(int, re.findall(r'version=(\d+)', open('file.txt').read()))) Последний раз редактировалось Yappie; 03.12.2009 в 09:35. Причина: укоротил |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно поправить скрипт | happsihh | Разработка и сопровождение сайтов | 0 | 24.02.2009 13:56 |
Кто может написать скрипт | 10012003 | Деловое сотрудничество | 17 | 15.02.2009 14:39 |
Нужно написать сайт! | TRALL | Разработка и сопровождение сайтов | 3 | 17.01.2009 15:41 |
Сайт аудитор - микро инфаркт :) | Santehnik | Курилка | 1 | 19.11.2008 03:11 |
Нужно написать биографию | TRENER | Курилка | 70 | 01.05.2008 17:03 |
Часовой пояс GMT +3, время: 09:18.