Автор Тема: Передаю GET\'ом, можно ли ещё POST туда же?  (Прочитано 4120 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Передаю данные GET\'ом
http://127.0.0.1/cgi-bin/test_get2.pl?action=20
а можно ещё в этот же скрипт, по этому URL, передать данные из формы?

Т.е. есть форма с примерно таким описанием

....
....

Если да, то как обработать?

Сейчас обрабатываю просто GET так:

if ($ENV{\'REQUEST_METHOD\'} eq "POST")
    {
      read(STDIN, $bufer, $ENV{\'CONTENT_LENGTH\'});
    }
elsif ($ENV{\'REQUEST_METHOD\'} eq "GET")
    {
      $bufer=$ENV{\'QUERY_STRING\'};
    }

@pairs = split(/&/, $bufer);
foreach $pair (@pairs)
      {
        ($name, $value) = split(/=/, $pair);
        $name =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
        $value =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
        $input{$name} = $value;
      }

Заранее спасибо!

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #1 : 22 Апреля 2002, 10:53:06 »
У тебя универсальный скрипт обработки.Он у тебя читает как POST так и GET.
Не вижу проблем :)
Хочешь передавай POST а Хочешь GET.
У програмиста две руки: левая и !левая
welcome

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #2 : 22 Апреля 2002, 12:18:33 »
Цитировать

Тут немного не так надо писать

 
 
У програмиста две руки: левая и !левая
welcome

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #3 : 22 Апреля 2002, 12:42:40 »
Цитировать
У тебя универсальный скрипт обработки.Он у тебя читает как POST так и GET.


Oops! :))

Уж сколько раз твердили миру - используйте CGI.

Если уж очень нужны параметры в хеше, то
use CGI qw(:cgi-lib);
&ReadParse();
2B OR NOT 2B = FF

Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #4 : 22 Апреля 2002, 15:12:57 »
Нет, ну так-конечно Oops :) но
для передачи простых данных типа action=20 user_id=крутой_юзер анекдот=номер23178 вполне достаточно
Цитировать
if ($ENV{\'REQUEST_METHOD\'} eq "POST")
{
read(STDIN, $bufer, $ENV{\'CONTENT_LENGTH\'});
}
elsif ($ENV{\'REQUEST_METHOD\'} eq "GET")
{
$bufer=$ENV{\'QUERY_STRING\'};
}

@pairs = split(/&/, $bufer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$name =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$value =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$input{$name} = $value;
}


:beer:
У програмиста две руки: левая и !левая
welcome

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #5 : 22 Апреля 2002, 15:44:11 »
Цитировать
для передачи простых данных типа action=20 user_id=крутой_юзер анекдот=номер23178 вполне достаточно

А когда данные усложняться? Скрипт будешь переписывать типа?
Изобретение велосипеда не преследуется по закону.:))
2B OR NOT 2B = FF

  • Гость
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #6 : 23 Апреля 2002, 00:37:26 »
Цитировать
Т.е. есть форма с примерно таким описанием

....
....

Если да, то как обработать?


Как у тебя написано, так и обработать. Сейчас у тебя будет обрабатываться POST часть. Но никто не мешает отдельно обработать $ENV{\'QUERY_STRING\'}, который все равно доступен, даже если данные пережавались постом.

Оффлайн Yuraz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.kirov.ru/~yura
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #7 : 23 Апреля 2002, 08:18:25 »
Если со скрытым полем, то думал уже об этом, так и сделаю. Страницы буду вызывать методом GET, а формы сформировывать с срытыми полями для POST. У меня задача такая, скрипт один, а выдаёт много, на половину разных страниц, плюс разные формы на этих страницах...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #8 : 25 Апреля 2002, 01:43:29 »
Цитировать
Передаю данные GET\'ом
http://127.0.0.1/cgi-bin/test_get2.pl?action=20

;)
нет, конечно может я что-то не понял., но как только человек ткнет по такой ссылке (с передачей GET параметров), то никакой друго формы (POST или другой GET) обрабатываться ИМХО не будет :) просто данные не будут передаваться - передастся только то, что со ссылкой.
И с другой стороны - если ткнуть по кнопке в форме POST, то не будут передаваться данные из других форм.
 в исканиях.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #9 : 25 Апреля 2002, 10:51:55 »
Цитировать
Уж сколько раз твердили миру - используйте CGI.

Весь в дырах и тормозной ?!?!?!?
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #10 : 25 Апреля 2002, 11:39:10 »
Цитировать
Весь в дырах и тормозной ?!?!?!?

Это кто тебе сказал?
2B OR NOT 2B = FF

  • Гость
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #11 : 25 Апреля 2002, 20:39:28 »
>>как только человек ткнет по такой ссылке (с передачей GET параметров), то никакой друго формы (POST или другой GET) обрабатываться ИМХО не будет

Конечно не будет. Форма должна быть одна, POST. При этом все поля формы уйдут постом, но в action можно написать не просто имя скрипта, а имя скрипта с дополнительными параметрами (аналог GET). Эти параметры не будут доступны для обычной обработки формы, потому что форма POST и обрабатываются только параметры полей формы. Но параметры строки запроса (то что стоит после ? в action) можно выловить из $ENV{\'QUERY_STRING\'} и обработать отдельно. Зачем это нужно непонятно, но если человеку надо, значит надо...


Оффлайн ESE

  • Фанат
  • Постоялец
  • ***
  • Сообщений: 172
  • +0/-0
  • 2
    • Просмотр профиля
    • http://comp.hobi.ru
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #12 : 25 Апреля 2002, 21:49:37 »
тут в конкретном случае вообще ничего работать не будет
цитирую
a надо хотябы вот так
У програмиста две руки: левая и !левая
welcome

  • Гость
Передаю GET\'ом, можно ли ещё POST туда же?
« Ответ #13 : 25 Апреля 2002, 22:39:35 »
У меня работает. Хотя, если честно, я просто скопировал этот код из самого первого сообщения, не проверяя. Сейчас проверил, работает.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28