Форум: "Потрепаться";
Текущий архив: 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]почему же :-) вполне по теме - обсуждаем, как передаётся переменная в скрипт :-))
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c