Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по Перлу   Найти похожие ветки 

 
Феликс   (2002-12-14 22:33) [0]

Есть код:
#!/usr/bin/perl

print "Content-type: text/html\n\n";

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

$image =$FORM{"image"};
$users = $FORM{"users"};


А задача стоит такая:
Скрипт должен получить значение перменных со страницы и из ссылки. А ссылка такая (к примеру) ...cgi-bin/script.pl?id=12345.
Т.е программа должна иметь данные из компонента с названием image и users, а также получить значени 12345, которое указано в ссылке. Вопрос как это сделать если выше указанный код получает данные только со страницы? Вернее сказать, что надо добавить или убрать со страницы, чтобы сформировать переменные с данными из страницы и ссылки.


 
McSimm   (2002-12-15 12:14) [1]

Во первых скрипт получает данные не со страницы, а из формы.
(я не придираюсь к словам, это важно). Причем здесь какая-то ссылка?
Может быть это сделано так?
<FORM METHOD=POST ACTION="script.pl?id=12345">...поля image,users</FORM>
Так действительно надо немного переделать программу и для POST метода обрабатывать также и строку запроса:
if ($mode == 0) {read(STDIN, $buffer, $ENV{"CONTENT_LENGTH"}); $buffer .= "&".$ENV{"QUERY_STRING"}}}

Но зачем так делать? можно то же самое сделать и по-человечески:
<FORM METHOD=POST ACTION="script.pl?id=12345">
<INPUT TYPE="hidden" NAME="id" VALUE="12345">
...поля image,users
</FORM>
Тогда используется только метод POST, передаются все даныые и программу переделывать не нужно.


 
McSimm   (2002-12-15 12:19) [2]

Поправка:
<FORM METHOD=POST ACTION="script.pl">
<INPUT TYPE="hidden" NAME="id" VALUE="12345">
...поля image,users
</FORM>


 
Феликс   (2002-12-15 14:44) [3]

Задача заключается в том, чтобы получать данные как из формы так и из ссылки. Ведь как-то же можно нажав на ссылку выполнить скрипт причем с теми данными что указаны на форме и значением id? Или нет?


 
McSimm   (2002-12-15 14:53) [4]

Чтобы передать данные формы надо делать ей SUBMIT.
Простое нажатие на ссылку приводит к обращению к скрипту методом GET и параметры беруться только из URL - т.е. никакие данные формы не передаются. И наоборот - при submit формы никакого понятия "ссылка" нет.

Есть разные хитрости, например можно при нажатии на ссылку (с фиктивным адресом, напр. "#")выполнить javascript, который сделает заполнение hidden полей и submit формы.


 
Феликс   (2002-12-15 15:41) [5]

Вообщем я все понял! Спасибо!



Страницы: 1 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.007 c
3-14949
Almaren
2002-12-14 18:05
2003.01.06
Как узнать содержание активной записи в базе данных?


14-15251
id_privin
2002-12-15 13:20
2003.01.06
ГОСТ 19.301-79 “Программа и методика испытаний”


8-15164
Aleksey Rykov
2002-09-13 01:48
2003.01.06
DirectDraw в оконном режиме


3-14956
KonuhovSegey
2002-12-04 08:05
2003.01.06
Помогите !!! При долгой работе программа с БД виснет.


6-15205
X-shadow
2002-11-07 05:47
2003.01.06
Отправка письма





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский