Forum Webscript.Ru

Программирование => Perl => Тема начата: DrumSe от 28 Июля 2004, 00:38:10

Название: CGI + Perl
Отправлено: DrumSe от 28 Июля 2004, 00:38:10
Мне для моего скрипта надо только чтение данных из формы и создание куки, можно ли все это сделать без CGI.pm
Название: CGI + Perl
Отправлено: Forza от 28 Июля 2004, 00:51:56
Да, конечно, можно.
CGI.pm лишь упрощает работу программера, но я не знаю ничего такого, в чём он был бы незаменим.
Название: CGI + Perl
Отправлено: DrumSe от 28 Июля 2004, 01:06:23
Дык ты не мог бы мне написать как мне получать данные из формы и создавать куки без него?!
Название: CGI + Perl
Отправлено: Chs от 28 Июля 2004, 09:25:53
DrumSe
Посмотри код CGI.pm - там все есть.:)
Название: CGI + Perl
Отправлено: Phoinix от 28 Июля 2004, 10:48:03
DrumSe
http://faq.webscript.ru/PFWWWParams?v=glg (http://faq.webscript.ru/PFWWWParams?v=glg)
Особенно рекомендую почитать последний абзац, кстати это и мое IMHO тоже... процесс просветления долог и труден... ;)

А чем, собственно, мотивировано нежелание использовать CGI?

P.S. И в догонку - CGI_Lite - для тех кому нужно разбирать формы...
Название: CGI + Perl
Отправлено: Forza от 28 Июля 2004, 11:57:48
Цитировать
DrumSe:
Дык ты не мог бы мне написать как мне получать данные из формы и создавать куки без него?!

Данные из формы (пример из гостевухи, которую я "писал" ;) в институте):
sub decode{
 local($string)=@_;
 $string=~s/\\+/ /g;
 $string=~s/%0D%0A/
/g;
 $string=~s/%([0-9A-F]{2})/chr(hex($1))/eg;
 return $string; }

sysread(STDIN,$input,$ENV{\'CONTENT_LENGTH\'});

  foreach(@fields=split(/&/,$input)){
    if(/^Name=(.*)/){$Name=&decode($1);}
    if(/^Email=(.*)/){$Email=&decode($1);}
    if(/^City=(.*)/){$City=&decode($1);}
    if(/^Message=(.*)/){$Message=&decode($1);}}

Как видно функция decode() плюсы заменяет на пробелы, восстанавливает конец строки и кириллицу.

А вот пример для куки (это надо выводить раньше, чем Content-Type): print "Set-Cookie: dvd_shop=8472f7bde2634b10ef58568abee7cb85; path=http://localhost/MY9.PL; expires=Thu, 29-Jul-2004 07:57:05 GMT"
Название: CGI + Perl
Отправлено: DrumSe от 28 Июля 2004, 12:57:48
2Phoinix
Цитировать
А чем, собственно, мотивировано нежелание использовать CGI?

1) Интерено ппоработать без него =)
2) Он очень много жрет...
Название: CGI + Perl
Отправлено: NeoNox от 28 Июля 2004, 13:03:43
DrumSe
1) твое право
2) уверен?

для всех велосипедистов рекомендуется к прочтению: use CGI or die; (http://www.perlmonks.org/index.pl?node_id=51012)