Старый 26.11.2009, 16:21   #1
Эксперт
 
Аватар для MS555
 
Регистрация: 02.09.2008
Адрес: РФ
Сообщений: 1,007
Вес репутации: 225
MS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордится
Smile Нужно написать Микро 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 норм?)
Помогите
MS555 вне форума   Ответить с цитированием
Старый 26.11.2009, 17:34   #2
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

Плюньте вы на этот Perl, некрофилия еще никого до добра не доводила.

Да и URL domen.ru/cgi-bin/index.pl?action=main в 21м веке должно быть стыдно на сайте иметь...
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Старый 26.11.2009, 17:43   #3
Эксперт
 
Аватар для MS555
 
Регистрация: 02.09.2008
Адрес: РФ
Сообщений: 1,007
Вес репутации: 225
MS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордится
По умолчанию

Alexey, да я понимаю) у меня проблема специфическая) нужно сделать именно на perl странички..
MS555 вне форума   Ответить с цитированием
Старый 26.11.2009, 20:01   #4
Специалист
 
Регистрация: 20.08.2009
Сообщений: 115
Вес репутации: 195
pluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордится
По умолчанию

Если я все правильно понял, то можно так:

#!/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'а
pluto вне форума   Ответить с цитированием
Старый 26.11.2009, 21:21   #5
Эксперт
 
Аватар для MS555
 
Регистрация: 02.09.2008
Адрес: РФ
Сообщений: 1,007
Вес репутации: 225
MS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордится
По умолчанию

Стоп) странички должны не открываться а показываться )) ну то есть текст должен показываться разный) взятый например из страничек рядом лежащих в папке
MS555 вне форума   Ответить с цитированием
Старый 26.11.2009, 22:13   #6
Специалист
 
Регистрация: 20.08.2009
Сообщений: 115
Вес репутации: 195
pluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордится
По умолчанию

тогда вот так

#!/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. Причина: Добавлено сообщение
pluto вне форума   Ответить с цитированием
Старый 27.11.2009, 01:53   #7
Мастер
 
Аватар для Neveykov
 
Регистрация: 22.10.2009
Адрес: Беларусь
Сообщений: 751
Вес репутации: 0
Neveykov не любят в этих краяхNeveykov не любят в этих краях
Отправить сообщение для Neveykov с помощью ICQ
По умолчанию

перл да ну его!
пхп рулит, а пхп 6 всем покажет

Добавлено через 1 минуту
вот мот пригодится ссылка http://bishome.ru/load/358

Последний раз редактировалось Neveykov; 27.11.2009 в 01:53. Причина: Добавлено сообщение
Neveykov вне форума   Ответить с цитированием
Старый 01.12.2009, 01:05   #8
Эксперт
 
Аватар для MS555
 
Регистрация: 02.09.2008
Адрес: РФ
Сообщений: 1,007
Вес репутации: 225
MS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордитсяMS555 - за этого человека можно гордится
По умолчанию

Чёто ничё не катит) вот нашёл и переписал сам скрипт)

#!/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

Всё ))
MS555 вне форума   Ответить с цитированием
Старый 01.12.2009, 08:26   #9
Специалист
 
Регистрация: 20.08.2009
Сообщений: 115
Вес репутации: 195
pluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордитсяpluto - за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от MS555 Посмотреть сообщение
Чёто ничё не катит) вот нашёл и переписал сам скрипт)
Всё ))
Перед тем как выложить скрипт я проверил его на рабочем сайте. Все работает.

Решили свою проблему - ну и прекрасно. Алес гуд.
pluto вне форума   Ответить с цитированием
Старый 03.12.2009, 09:29   #10
Специалист
 
Регистрация: 10.11.2009
Сообщений: 231
Вес репутации: 182
Yappie - как роза среди колючекYappie - как роза среди колючекYappie - как роза среди колючек
По умолчанию

(Пока отвечал - esetnod удалил свой вопрос )

Цитата:
Сообщение от esetnod Посмотреть сообщение
Дабы не создавать новой темы, помогите написать скриптик, который открывает файл, лежащий с ним в одном каталоге, ищет в нем все записи вида "version=1234" (1234- разные числа) и выводит самое большое число.
На перле (давно не писал, могу и ошибится):

Код:
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())))
P.S. К вышесказанному присоединюсь - для разработки сайтов Perl использовать не стоит.

Последний раз редактировалось Yappie; 03.12.2009 в 09:35. Причина: укоротил
Yappie вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно поправить скрипт 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, время: 11:07.