Forum Webscript.Ru
Программирование => Perl => Тема начата: Infostorage от 29 Октября 2001, 13:33:24
-
Помогите, кто может решить вопрос.
Пытаюсь передать значения в скрипт , не через форму а напрямую с строке запроса(http://site/cgi-bin/list.cgi?user_name=ssss), и вывести эти значения на экран таким образом:
#!c:/perl/bin/perl
print "Content-Type: text/html\\n\\n";
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@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;
$value =~ s///g;
$input{$name} = $value;
}
print "$input{\'user_name\'}";
В итоги на экране пустота. В чем же ошибка?
-
вместо
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
используй
($ENV{\'REQUEST_METHOD\'} eq "POST") and read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
($ENV{\'REQUEST_METHOD\'} eq "GET") and ($buffer = $ENV{\'QUERY_STRING\'});
т.е. при вводе в статусной строке, данные передаются методом GET, и соотвественно они записываются в другую переменную
-
Спасибо :-)
-
Не, вот мучения! :)
используй модуль CGI
#!/usr/bin/perl
use CGI qw/:standart/;
print header,param(\'user_name\');
-
Не, вот мучения!
используй модуль CGI
:) непрактично загружать модуль со столькими функциями лишь для того, чтоб воспользоваться всего лишь одной махонькой функцией.
-
непрактично загружать модуль со столькими функциями лишь для того, чтоб воспользоваться всего лишь одной махонькой функцией.
Но!
1. позволит избежать ненужных ошибок
2. сделает код скрипта более изящным и читаемым
-
сделает код скрипта более изящным и читаемым
весьма спорные утверждения насчет читаемости и изящества - вынесли это в отдельную подрограммку и все, а насчет ошибок :) так это про все что угодно можно сказать - все зависит от личных качеств.
-
:) Спорное, но ошибок будет действительно меньше. :))
И экспортировать можно только часть функций.
А вопрос изобретения велосипеда и повторной отладки уже существующих функций то же спорный.:)
-
Почему же всё загружать. А Autoloader/Selfloader зачем тогда?