не подключается к базе из Cgi
Есть перловый CGI скрипт, есть БД MSDE и IIS
Дело в следующем..
Скрипт под perlом работает, в браузере как я понял
он выполняется до "my $db = DBI->connect.." дальше тишина, т.е. ничего не отображается на странице..
В чем же дело?
Вот скрипт:
#!/usr/local/bin/perl
#use strict;
use DBI::DBD;
print "Content-type:text/html\n\n";
print <<HTML;
<html><head><style>a:link {text-decoration:none; }</style></head>
<body><h3 align=center><font color="0000ff">No</font></h3></body>
HTML
my $db = DBI->connect("DBI:ODBC:deal_msde", "sa", '');
my $cst=$db->prepare("select name from users");
$cst->execute;
while ((my $name)=$cst->fetchrow_array)
{
print "$name\n";
}
print <<HTML;
<body><h3 align=center><font color="0000ff">Yes</font></h3></body>
HTML
$db->disconnect;
Спасиба!
#!/usr/local/bin/perl
интересно, как CGI скрипт на Perl работает под виндовым IIS c таким Shebang:
а что activeperl не должен работать?
у мя другие же скрипты работают.. только вот с коннектом к БД не выходит..:(
а что activeperl не должен работать?
у мя другие же скрипты работают.. только вот с коннектом к БД не выходит..:(
смотри логи БД. только я все равно не понимаю, как твой интерпретатор понимает #!/usr/local/bin/perl
смотри логи БД. только я все равно не понимаю, как твой интерпретатор понимает #!/usr/local/bin/perl
хоть убирай эту строчку хоть с:/perl/bin/ напиши результат тот же..
логи боюсь не помогут -база MSDE..
дело в том что в Perl Builder'e все работает..
мож косяк где-то в IE?
Такое предложение, раскоментируй директиву use strict.
Подравь строку на
my $db = DBI->connect("DBI:ODBC:deal_msde", "sa", '') || die "cant connect to database";
запусти в командной строке свой скриптец.
наверняка на что нить ругнетца
насчет #!/usr/... под виндой - это нормально.
Такое предложение, раскоментируй директиву use strict.
Подравь строку на
my $db = DBI->connect("DBI:ODBC:deal_msde", "sa", '') || die "cant connect to database";
запусти в командной строке свой скриптец.
наверняка на что нить ругнетца
все вышеуказанное проделывал и раньше..
не ругается
выдает тока то что в print.. к базе коннектится выдает результат selecta
Запость сюда все что тебе вызается в консоли.
т.е. например в far говоришь
> perl script.pl > result.html
result.html давай сюда
Гм, такое замечение, надо подправить html. Что то смущает меня множество тегов body
Запость сюда все что тебе вызается в консоли.
т.е. например в far говоришь
> perl script.pl > result.html
result.html давай сюда
вот:
Content-type:text/html
<html><head><style>a:link {text-decoration:none; }</style></head>
<body><h3 align=center><font color="0000ff">No</font></h3></body>
Admin
<body><h3 align=center><font color="0000ff">Yes</font></h3></body>
вот:
Content-type:text/html
<html><head><style>a:link {text-decoration:none; }</style></head>
<body><h3 align=center><font color="0000ff">No</font></h3></body>
Admin
<body><h3 align=center><font color="0000ff">Yes</font></h3></body>
Аdmin - это то что у тебя в базе.
Осталось почистить html
Аdmin - это то что у тебя в базе.
Осталось почистить html
Да это из базы..
В том то и дело, что скрипт так выполняется из командной строки.. если этот CGI скрипт выполнить в браузере он выдаст только то что до my $db = DBI->connect("DBI:ODBC:deal_msde", "sa", '')
остальное он просто не замечает..
Счас проверил если заремарить "USE DBI; "
ничего не меняется в браузере, выдает только первую часть где слово "No" и все, в perle же он естественно ругается. Возможно скрипт в браузере не понимает слова USE?
гм, а что в логи валица?
В логах к базе ничего нет.. потому как коннект даже и не пытается вызываться.. в USE DBI дело возможно не знает браузер че это такое.. и при вызове команды DBI->connect('DBI:ODBC:deal_msde', 'sa', '') он не знает че делать.. останавливается и ошибок не выдает.. типа конец страницы и все тут :(
если бы дело быдло в use DBI, то тебе выдавался бы 500 ответ.
не в логах уеб-сервера, что творитца?
если бы дело быдло в use DBI, то тебе выдавался бы 500 ответ.
ничего там не творится лог-visits:
2006-03-31 11:20:38 W3SVC1 127.0.0.1 GET /forum/logit.cgi - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+ru)+Opera+8.53 200 0 0
ничего там не творится лог-visits:
2006-03-31 11:20:38 W3SVC1 127.0.0.1 GET /forum/logit.cgi - 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+ru)+Opera+8.53 200 0 0
Короче всем спасиба все заработало..
причина была в прописанных DataSources (ODBC)
первоначально было прописано в User DSN?
добавил в System DSN и коннект пошел..