Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Получение данных из формы.

404
10 мая 2004 года
GooD
108 / / 04.12.2003
Привет всем!
У меня короче тут проблема возникла есть Html форма которая методом post посылает данные cgi скрипту надо эти данные сохранить в файл.
Код формы:
<FORM method="post" action="http://?????/cgi-bin/main.cgi" name="Form1">
<input id=Text1 type=text name=Text>
<input id=Submit1 type=submit value=Submit name=>
</FORM>
Я пытаюсь так:
#!/usr/bin/perl
open QV,">>QV.txt";
print QV "QV:$FORM{'Text'}";
close QV;
Но у меня не чего не получается :-( и я незнаю почему! помогите пожалуйсто!!!
Заранее БОЛЬШОЕ СПАСИБО!
287
10 мая 2004 года
Shiizoo
958 / / 14.03.2004
Эээ.. А зачем такие примитивные манипуляции?
Можь отформатировать это все как надо, или еще что сделать.. Или просто тренинг?=)

сырец:

#!e:/perl/bin/perl -w
##Поменяй на свой путь к perl.exe

use CGI qw(param);

our $fn = 'c:/file.txt';
##Поменяй на путь к твоему файлу

if (my $text = param("text")) {
open(FH,">>$fn") || die("Couldn`t open $fn.");
chomp($text);
print FH $text."\n";
close FH || die("Couldn`t close $fn.");
} else {
die("Alarm! Alarm! Hacking attempt!");
}

exit(0);

Ну, эт для примера.. Хтя чего ты хтишь, я не понял=) use CGI qw(param) импортирует функцию param, кторую мы птом используем, чтобы получить параметр "text", переданый формой. Если у тебя нет либы cgi, тогда удали "use CGI ...", и впиши где следует это:

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

Сам писать не стал, но уверен, что работает=) Так ты простейшим путем получишь все, что было передано формой. А чтобы получать твой етот самый "text" пиши так $FORM{"text"}.. Только одно но, этот способ обработки форм совсем НЕ УНИВЕРСАЛЕН, может при экзотическах с экзотическим софтом не работать, и самое главное, не умеет получать массивы параметров (впрочем, эт улаживается быстро).. Поэтому лучше юзай либу CGI..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог