imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 12.07.2005, 19:16     # 1
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Страничка на Perl

Такая проблема: я создал страничку на Perl'e (#!/usr/bin/perl print "asdfsaf", а броузер мне говорит
Цитата:
You don't have permission to access /1/index.cgi on this server
Хотя права 777, как можно это исправить?
И еще, как можно прочитать переменные посланные методом POST или GET скрипту? И как можно открыть pop-up окно методами Perl'а? И есть ли аналог pg_connect в Perl'e и вообще, поддержка базы Postgres?
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.

Последний раз редактировалось The_naked; 12.07.2005 в 20:22.
Naked вне форума  
Старый 13.07.2005, 07:10     # 2
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
The_naked
Не забываем о передаче хэдера:
Код:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "asdfsaf";
Для получения request-параметров создавай ассоциативный массив:
Код:
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; }
Далее, если передан запрос "?a=blablabla", то получить значение можно, обратившись: $FORM{'a'}.
Pop-up окно открывается средствами JS - просто формируй перлом соответствующую HTML-страницу (сам прикинь: скрипт на перле выполняется на стороне сервера, а поп-ап открывается у клиента).
Насчет Postgres ничего сказать не могу кроме того, что у меня валяется какая-то библиотека к перлу под названием "Persistence-Object-Postgres". Может это оно и есть... Могу поделиться - стучи в ПМ.

З.Ы. Кстати http-сервер должен знать, что делать с перл-скриптами (не передавать тупо их текст клиенту, а выполнять). Посмотри настройки.

З.З.Ы. И еще сюда же: в опциях директории должен быть указан параметр ExecCGI (если у тебя стоит Apache).
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 13.07.2005, 08:42     # 3
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Спасибо. И тогда еще один вопрос, может правда не в тему. Можно ли выбрав все записи из таблицы узнать название самих колонок...и сколько их соответственно? Ну да, и вопрос про Postgres остается в силе...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 13.07.2005, 09:53     # 4
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
Так я нахожу количество и имена колонок при работе с 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();
Насчет Postgres все еще ничего сказать не могу...
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!

Последний раз редактировалось Ghost; 13.07.2005 в 09:55. Причина: склероZzz...
Ghost вне форума  
Старый 13.07.2005, 17:42     # 5
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Большое спасибо, но может кто-нибудь знает, как заюзать библиотеку Postgres'а? Т.е. вместо DBI->connect писать что-то типа pg_connecr (как в PHP)
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 13.07.2005, 19:52     # 6
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
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
Saruman вне форума  
Старый 16.07.2005, 00:34     # 7
Goryn
::VIP::
 
Аватар для Goryn
 
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633

Goryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собой
Цитата:
Сообщение от The_naked
Хотя права 777
Вообще-то на CGI-скрипты ставятся права 755.

777 ставится на текстовые файлы, в которые что-то пишут скрипты. Или на каталоги, в которых скрипты должны создавать файлы.
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы!
Goryn вне форума  
Старый 26.07.2005, 01:27     # 8
Panoramus
Guest
 
Сообщения: n/a

Цитата:
Сообщение от Goryn
Вообще-то на CGI-скрипты ставятся права 755.

777 ставится на текстовые файлы, в которые что-то пишут скрипты. Или на каталоги, в которых скрипты должны создавать файлы.
да да, меня тоже забавляет эта умная возня, когда даже чмод не выставлен нормально
 
Старый 02.08.2005, 10:37     # 9
J`JF
Guest
 
Сообщения: n/a

Вообще-то, если скрипт не исполняется с 777, то 755 ему явно не поможет.
Вероятно, проблема все же именно в конфигурации апача, или же, как вариант, в правах на 1, а то и вообще зарыть где-то внутри .htaccess, валяющегося где-то по дороге.
 
Старый 03.08.2005, 01:41     # 10
xse15
Junior Member
 
Регистрация: 16.03.2003
Адрес: 192.168.177.15
Сообщения: 78

xse15 Путь к славе только начался
Цитата:
J`JF:
Вообще-то, если скрипт не исполняется с 777, то 755 ему явно не поможет.
Если на сервере используется su_exec то очень даже может помочь,
http://httpd.apache.org/docs/1.3/suexec.html пункт 16.
А вообще-то нужно смотреть в error-log сайта и suexec.log (или как он у вас обзывается) там на 80% найдется ответ на вопрос.
xse15 вне форума  
Старый 03.08.2005, 04:11     # 11
Ale
Junior Member
 
Регистрация: 22.03.2004
Сообщения: 123

Ale Известность не заставит себя ждатьAle Известность не заставит себя ждать
Насчет 777 - 100 пудов, поставь 755

Насчет You don't have permission to access /1/index.cgi on this server
Начни с начала - cgi в отличие от php не исполняется где-ни-попадя, если хостер разрешает запускать скрипты только из cgi-bin так оно и будет. Если ты сам себе хостер - пропиши в htaccess соотв директиву:

Options +ExecCGI
Ale вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:18.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.