| imho.ws |
![]() |
|
|
|
# 1 | |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Страничка на Perl
Такая проблема: я создал страничку на Perl'e (#!/usr/bin/perl print "asdfsaf"
, а броузер мне говоритЦитата:
![]() И еще, как можно прочитать переменные посланные методом POST или GET скрипту? И как можно открыть pop-up окно методами Perl'а? И есть ли аналог pg_connect в Perl'e и вообще, поддержка базы Postgres?
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. Последний раз редактировалось The_naked; 12.07.2005 в 20:22. |
|
|
|
|
|
# 2 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
The_naked
Не забываем о передаче хэдера: Код:
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "asdfsaf"; Код:
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'}); }
else {
$bufer=$ENV{'QUERY_STRING'}; }
@pairs = split(/&/, $bufer);
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; }
Pop-up окно открывается средствами JS - просто формируй перлом соответствующую HTML-страницу (сам прикинь: скрипт на перле выполняется на стороне сервера, а поп-ап открывается у клиента). Насчет Postgres ничего сказать не могу кроме того, что у меня валяется какая-то библиотека к перлу под названием "Persistence-Object-Postgres". Может это оно и есть... Могу поделиться - стучи в ПМ. З.Ы. Кстати http-сервер должен знать, что делать с перл-скриптами (не передавать тупо их текст клиенту, а выполнять). Посмотри настройки. З.З.Ы. И еще сюда же: в опциях директории должен быть указан параметр ExecCGI (если у тебя стоит Apache).
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |
|
|
|
|
# 3 |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Спасибо. И тогда еще один вопрос, может правда не в тему. Можно ли выбрав все записи из таблицы узнать название самих колонок...и сколько их соответственно? Ну да, и вопрос про Postgres остается в силе...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
# 4 |
|
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Так я нахожу количество и имена колонок при работе с Oracle и mySQL:
Код:
use DBI;
my $dbh = DBI->connect("реквезиты базы данных") || die print "$DBI::errstr\n";
my $query = "какой-недь запрос";
my $sth = $dbh->prepare($query) || die print "$DBI::errstr\n";
$sth->execute || die print "$DBI::errstr\n";
my $col_cnt = $#{$sth->{NAME}};
my @columns = [];
for (my $i = 0; $i <= $col_cnt; $i++) { $columns[$i] = $sth->{NAME}->[$i]; }
...
$sth->finish();
$dbh->disconnect();
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! Последний раз редактировалось Ghost; 13.07.2005 в 09:55. Причина: склероZzz... |
|
|
|
|
# 5 |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Большое спасибо, но может кто-нибудь знает, как заюзать библиотеку Postgres'а? Т.е. вместо DBI->connect писать что-то типа pg_connecr (как в PHP)
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
# 6 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
The_naked
Где ты нашел в перле какую библиотеку постгреса? Все через DBI юзается. При установленном DBD::Pg, ессно: CPAN DBD:Pg Example Perl - PostgreSQL connection
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 7 | |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
777 ставится на текстовые файлы, в которые что-то пишут скрипты. Или на каталоги, в которых скрипты должны создавать файлы.
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|
|
|
|
# 8 | |
|
Guest
Сообщения: n/a
|
Цитата:
|
|
|
|
# 10 | |
|
Junior Member
Регистрация: 16.03.2003
Адрес: 192.168.177.15
Сообщения: 78
![]() |
Цитата:
http://httpd.apache.org/docs/1.3/suexec.html пункт 16. А вообще-то нужно смотреть в error-log сайта и suexec.log (или как он у вас обзывается) там на 80% найдется ответ на вопрос. |
|
|
|
|
|
# 11 |
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Насчет 777 - 100 пудов, поставь 755
Насчет You don't have permission to access /1/index.cgi on this server Начни с начала - cgi в отличие от php не исполняется где-ни-попадя, если хостер разрешает запускать скрипты только из cgi-bin так оно и будет. Если ты сам себе хостер - пропиши в htaccess соотв директиву: Options +ExecCGI |
|
|