Автор Тема: DBI-ODBC не работает через CGI  (Прочитано 3765 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BonJorno

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
DBI-ODBC не работает через CGI
« : 01 Июля 2004, 11:50:57 »
Делаю запрос  в скрипте к MSSQL через DBD-ODBC выдает ошибку:
Use of uninitialized value in concatenation (.) or string at C:/Perl/site/lib/DBI.pm line 576.
DBI connect(\'DRIVER=SQL Server;SERVER=myserver;DATABASE=mybase\',\'user\',...) failed

Этот же скрипт пускаю из командной строки выполняется безошибочно!
В чем тут грабли?
Соединение:
$dsn="DRIVER=SQL Server;SERVER=myserver;UID=user;PWD=parol;DATABASE=mybase";
$dbh = DBI->connect("DBI:ODBC:$dsn");

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
DBI-ODBC не работает через CGI
« Ответ #1 : 01 Июля 2004, 12:06:14 »
perldoc DBD::ODBC
Цитировать
use DBI;
$dbh = DBI->connect(\'dbi:ODBC:DSN\', \'user\', \'password\');
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
DBI-ODBC не работает через CGI
« Ответ #2 : 01 Июля 2004, 12:10:10 »
и заодно
perldoc perldiag
Цитировать
Use of uninitialized value%s
           (W uninitialized) An undefined value was used as if it
           were already defined.  It was interpreted as a "" or a
           0, but maybe it was a mistake.  To suppress this warn
           ing assign a defined value to your variables.

           To help you figure out what was undefined, perl tells
           you what operation you used the undefined value in.
           Note, however, that perl optimizes your program and
           the operation displayed in the warning may not neces
           sarily appear literally in your program.  For example,
           "that $foo" is usually optimized into ""that " .
           $foo", and the warning will refer to the "concatena
           tion (.)" operator, even though there is no "." in
           your program.
The documentations is your friend

Оффлайн BonJorno

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
DBI-ODBC не работает через CGI
« Ответ #3 : 01 Июля 2004, 12:31:25 »
На самом деле тут проблема в другом.
Если коннектишся к базе через шелл, то она позволяет это делать через windows авторизацию, а когда коннектишся со страницы то требуется авторизация через базу.
Тогда вопрос, как  сделать, чтоб с вебстраницы проходила windows авторизация?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
DBI-ODBC не работает через CGI
« Ответ #4 : 01 Июля 2004, 12:39:17 »
Цитировать
BonJorno:
На самом деле тут проблема в другом.

Ошибку в скрипте сначала убери.
Потом подключайся с RaiseError => 1 и посмотрим что он ответит.
The documentations is your friend

Оффлайн BonJorno

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
DBI-ODBC не работает через CGI
« Ответ #5 : 01 Июля 2004, 13:19:42 »
Так ошибки никакой нет, я уже сделал все работает, но через авторизацию базы.
$dbh = DBI->connect(\'dbi:ODBC:DSN\', \'Winuser\', \'password\');
работает из шелла. не работатет с вебстраницы.
$dbh = DBI->connect(\'dbi:ODBC:DSN\', \'Baseuser\', \'password\');
работает с вебстраницы.
Мне теперь просто интересно, почему из шелла достаточно windows авторизации, а с вебстраницы нужно прописывать юзера базы?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
DBI-ODBC не работает через CGI
« Ответ #6 : 01 Июля 2004, 13:39:03 »
Я не уверен насчет виндовса...
Добавь эти строки и посмотри что выводится из-под консоли и в запуске через апач
print "Real UID: $<\\n";
print "Real GID: $(\\n";
print "Effective UID: $>\\n";
print "Effective GID: $)\\n"
The documentations is your friend

Оффлайн BonJorno

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
DBI-ODBC не работает через CGI
« Ответ #7 : 01 Июля 2004, 14:00:07 »
Я вобщето юзаю IIS
в консоли по нулям.
В общем работает и хрен с ним.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
DBI-ODBC не работает через CGI
« Ответ #8 : 01 Июля 2004, 19:17:22 »
BonJorno
Цитировать
Мне теперь просто интересно, почему из шелла достаточно windows авторизации, а с вебстраницы нужно прописывать юзера базы?


Потому, что из шелла запускаешь скрипт от своего имени (пользователя), а из сети интернет - от имени (пользователя) сервера, и я не думаю что пользователю IIS сервер можно делать все, что хочешь. Для етого отдельная авторизация при подключении к базе данных

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28