Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.004 c
3-42388
Dim
2001-12-10 12:48
2002.01.14
DLL


6-42528
Робот
2001-10-18 16:09
2002.01.14
Нужен почтовый робот,


3-42380
bk
2001-12-10 14:25
2002.01.14
Ms Outlook


1-42447
Phisio
2001-12-24 18:53
2002.01.14
Почему ОШИБКА!!!


4-42609
McSimm
2001-11-13 12:55
2002.01.14
Писать в запрещенные адреса памяти.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский