Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Вниз

Вопрос по Перлу 


Димон   (2001-11-17 20:58) [0]

Привет, люди!
Помогите создать (ошень нужно) следующий скрипт. Человек в форме вводит определенное слово, например, test нажимает на кнопку и грузит скрипт. Скрипт проверят есть ли файл test.txt(это к примеру) в папке /cgi-bin/tp/. Есть ли есть,
то грузиться странца start.htm, если нет, то страница er.htm.
Заранее благодарен.



anod   (2001-11-17 21:14) [1]

Удалено модератором



модератор   (2001-11-18 18:09) [2]

не по сабжу
для таких вопросов http://perl.mastak.com/



Suntechnic   (2001-11-18 23:44) [3]

Не модератор, а прямо зверь :).... это ж надо вопрос в форуме "Потрепаться" "не по сабжу" обозвать :)... ИХМО тут всё не по сабжу в таком случае...



anod   (2001-11-18 23:52) [4]

:)
Хоть кто-то заступился



Merlin   (2001-11-19 14:41) [5]


#!/usr/bin/perl

# <FORM METHOD=POST ACTION="">
# <INPUT TYPE="text" NAME="test"> <INPUT TYPE="submit" value="»»">
# </FORM>

my $OKPage = "starthtm";
my $ErrorPage = "er.htm";
my $TestDir = "tp";

my $go = $ErrorPage;
request();

if (($FORM{test})and(-e "$TestDir/$FORM{test}.txt")) { $go = $OKPage; }
print "Location: $go\n\n";
exit;

#====================================================
# Form request
#====================================================
sub request
{ my(@pairs, $buffer, $pair);
%FORM = ();
if ($ENV{"REQUEST_METHOD"} eq "POST") {
# Get the input
read(STDIN, $buffer, $ENV{"CONTENT_LENGTH"});
# Split the name-value pairs
@pairs = split(/&/, $buffer);
}
elsif ($ENV{"REQUEST_METHOD"} eq "GET") {
# Split the name-value pairs
@pairs = split(/&/, $ENV{"QUERY_STRING"});
}
else { return; }
foreach $pair (@pairs) {
my($name, $value) = split(/=/, $pair, 2);
$value =~ tr/+/ /;
$value =~ s/%(\w\w)/pack("C", hex($1))/eg;
$value =~ s/\r//g;
$FORM{$name} = $value;
}
}




Donal   (2001-11-19 14:59) [6]

что-то это сложно как-то :-)) к примеру, скрипт на PHP :-) :

if file_exists ($dir."/".$fn.".txt")
header ("Location: start.html");
else
header ("Location: er.html");

--
так что, думаю и на Перле это можно полегче сделать :-)



Merlin   (2001-11-19 15:28) [7]

> Donal
А $fn откуда берется?
На Перле тоже можно все в три строчки вписать, но я не люблю использовать CGI.pm Это мое субъективное мнение.



evgeg   (2001-11-19 15:29) [8]

Еще одно сообщение не по сабжу?

> Merlin
А куда форум на perl.mastak.ru делся? Уже давно.



Merlin   (2001-11-19 15:37) [9]

не знаю. Я туда не захожу.



Kornet   (2001-11-19 15:41) [10]

php автоматически парсит переменные, т.е. например:
<input type=text name=fn> в php будет видна под переменной $fn



Merlin   (2001-11-19 15:42) [11]

Чудно. Я не знаю PHP можно маленький легбез? :)
А если я в программе объявляю переменную $fn, она заменит то что пришло с формы?



Kornet   (2001-11-19 15:44) [12]

ага



Kornet   (2001-11-19 15:46) [13]

а что? :)



Donal   (2001-11-19 15:47) [14]

2 Merlin : а fn берётся из формы или из командной строки
т.е. пусть мы назвали скрипт, который я привёл, redirect.php, тогда вызвать его можно двумя способами :
а. http://my.domain.ru/path/redirect.php?fn=test
b. FORM ACTION="redirect.php" METHOD="POST" (или GET - неважно)
INPUT TYPE="TEXT" NAME="fn"
INPUT TYPE="SUBMIT" VALUE="»»"

а насчёт cgi.pm - согласен. я пользовался...и возникали проблемы :-(



Kornet   (2001-11-19 15:49) [15]

2Donald - а) это частный случай b) :)
т.е.
FORM ACTION="redirect.php" METHOD="GET"
INPUT TYPE="TEXT" NAME="fn"
и будет а)



Kornet   (2001-11-19 15:50) [16]

2Donal: Извини, меня в этот момент отвлекли. :)



Donal   (2001-11-19 15:57) [17]

хе..согласен :-)) разница только в том, как получена командная строка - из формы или набором от руки :-))



Kornet   (2001-11-19 16:00) [18]

.. но для redirect.php это в принице по барабану. :))) Блин, что то пошёл разговор не по теме... :)



Donal   (2001-11-19 16:04) [19]

почему же :-) вполне по теме - обсуждаем, как передаётся переменная в скрипт :-))




Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.044 c
1-42495           VG                    2001-12-25 23:08  2002.01.14  
Компоненты для работы со временем


1-42510           Саня                  2001-12-21 10:30  2002.01.14  
О шрифте на кнопках...


7-42585           fsp                   2001-09-29 21:15  2002.01.14  
sender:Tobject


1-42518           Волокитин Николай     2001-12-26 15:55  2002.01.14  
Загрузка электронных таблиц в компонент F1Book.


1-42466           Mikh_Dmit             2001-12-23 22:51  2002.01.14  
Как добавить в проект мно одинаковых файлов