![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| cosamia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
Не подскажите, как в перле работать с веб сервисами?
И также еще несколько вопросов: 1) есть ли в перле обработка исключений ? например на jsp я могу сделать так: <%@ page errorPage="jsp1_error.jsp" %> у C# : try-catch-finally у других языков другие примочки. а как на перле? 2) попытался обработать подключение к БД следующим образом: $dbh=DBI->connect(...)||die "Can not connect"; Для проверки ввожу неправильный пароль и естественно подключения нет, но сообщение об этом не пишется. Почему? 3)вопрос по сессиям. в вышеуказаном примере используется mySQL для хранения сессий: tie %session, 'Apache::Session::MySQL' А если у меня база Oracle или MS SQL, достаточно ли будет написать: tie %session, 'Apache::Session::Oracle' tie %session, 'Apache::Session::MSSQL' или для каждой базы это делается по разному? |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
ответ на 1 вопрос: для этого есть eval
|
|||
|
||||
| cosamia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
вопрос на ответ на 1й вопрос%
eval что? пример кода можно? |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
1.) Про eval читай тута: http://forum.vingrad.ru/index.php?showtopic=8681
2.) Потому что ошибка происходит не в Perl а в MySQL, для того, что бы получить эту ошибку, при подключении нужно Попробуй написать так:
3. Достаточно, если конечно у тебя установлены эти модули. А вообще этот вопрос можно было и не задавать, достаточно было попробовать. Если рабоать не будет, тогда устанавливай модули Apache::Session::Oracle и Apache::Session::MSSQL и будет тебе счастье. Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| cosamia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
2) не работает так как ты редлагаешь:
my $dbh = DBI->connect("DBI:mysql:host=$host;database=$base", $log, $pass, { PrintError => 0, RaiseError => 1 } ) or die "Error: $DBI::errstr\n"; в случае не правильного пароля не выводится никакой ошибки! Я попробовал еще сделать так: use CGI::Carp qw(fatalsToBrowser)) $dbh = DBI->connect("DBI:mysql:host=$host;database=$base", $log, $pass, { PrintError => 1, RaiseError => 0 } ) Но в этом случае выдается такое сообщение: Software error: Can't call method "prepare" on an undefined value at /home... line ## For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error. неужели никто из перл гуру никогда не проверяет коннект? или вы его всегда делаете на основе статического пароля-логина? Уже 2 дня по форумам спрашиваю и никто не знает. Добавлено @ 06:30 кстати если AutoCommit => 0 то это ON или OFF ? |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Пишу такой код, в котором не верно указан пароль:
Получаю такую ошибку прямо в браузер:
За более подробной информацией обращайся к лог файлу. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| cosamia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
У меня так пишется код ошибки. И выводится строка подключения. Но я не хочу чтобы пользоатель все это видел. Как сделать чтобы он видел лишь некоторое мое сообщение?
То что я пишу после die "..." почему то не выводится. выводится только код ошибки и т.д. |
|||
|
||||
| Vaneska |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 15.3.2005 Где: Москва Репутация: 1 Всего: 4 |
Чтобы в браузер не выводилось сообщение, вместо die "Error: $DBI::errstr\n"
поставь функцию такого типа:
Функция записывает в файл отчета ошибку и, если указан параметр $d, аварийно завершает программу с выводом строки "Script error!" Это сообщение отредактировал(а) Vaneska - 7.6.2005, 15:53 --------------------
http://isokolov.blogspot.com/ |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |