Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как запустить скрипт 
:(
    Опции темы
able1985
Дата 9.4.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 26.8.2006

Репутация: нет
Всего: нет



Люди, проблема такая: не знаю, как правильно вызвать скрипт.
В winxp поставил Апач, perl, mysql.
По учебнику собрал скрипт, он должен при каждом вызове подключаться к базе mysql и делать там запись.
Собственно, проблема в том,  что если я запускаю скрипт из PerlEditor - он нормально работает, записи в базе появляются, а когда вызываю его из браузера (Opera, но это, кажись, не принципиально smile), скрипт работать не хочет, выдает ошибку 
"He удалось установить подключение к базе данных
2003
Can't connect to MySQL server on 'my.ru' (10061)"

Как я понимаю, причина в том, что браузер скрипт не запускает на сервере, где подключена база, а скачивает себе (команда GET). Из чего и вопрос: Как заставить его работать?

Код

#!/usr/bin/perl -w
# Выводим все сообщения об ошибках
use CGI::Carp qw(fatalsToBrowser);
use strict;
#-------------------------------------
# Настройка локали
#-------------------------------------
use locale;
use POSIX;
use POSIX 'locale_h';
setlocale(LC_CTYPE, 'ru_RU.CP1251');
#-------------------------------------
print "Content-type: text/html\n\n";
#-------------------------------------
my @form_data;
our %MyForm;
my @id;
my ($name, $value, $str);
my $i;
my $adr="95.57.114.84";
if ($ENV{'REQUEST_METHOD'} eq 'GET')
{
 # Данные переданы методом GET
 $str = $ENV{'QUERY_STRING'};
}
else
{
 # Данные переданы методом POST
 read(STDIN, $str, $ENV{'CONTENT_LENGTH'});
}
$adr="95.57.114.84";
@form_data = split(/&/, $str);
$i=1;
foreach (@form_data)
{
  ($name, $value) = split(/=/, $_);
  $value =~ tr/+/ /;
  $value =~ s/%(..)/pack("C", hex($1))/eg;
  $id[$i]=$value;
  $i++;
}
#-------------------------------------
# Подключение к базе
use DBI;
my $ds = 'DBI:mysql:users:my.ru';
my $user = 'root';
my $passw ='';
my $db = DBI->connect($ds, $user, $passw); # хэндл базы
if (!$db)
{
print "He удалось установить подключение к базе данных";
print "<BR>$DBI::err"; # Номер ошибки
print "<BR>$DBI::errstr"; # Текст ошибки
exit () ;
}
$db->do("SET NAMES cp1251");
#-------------------------------------
#-------------------------------------
#-------------------------------------
my $res = $db->prepare("INSERT INTO comps VALUES (NULL,?,?,?,?,?,NULL,NULL,?)");
$res->execute($id[1], $id[2], $id[3],$id[4],$ENV{'REMOTE_ADDR'},strftime("%d.%m.%Y %H:%M:%S",localtime()));
#-------------------------------------
if ($res->err)
{
 # Если возникла ошибка
 print "Ошибка " . $res->errstr;
}
$res->finish();
#-------------------------------------
#-------------------------------------
$db->disconnect(); # Закрываем соединение
#-------------------------------------
print "$id[1],$id[2],$id[3],$id[4],$ENV{'REMOTE_ADDR'}<BR>\n\n";
print "Ok!<BR>\n\n";

PM MAIL   Вверх
able1985
Дата 9.4.2011, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 26.8.2006

Репутация: нет
Всего: нет



Кажется, следует пояснить формулировку вопроса smile
В окончательном варианте скрипт вызывается не браузером, а моей программой, написанной в CBuilder, но, как я понимаю, вариантов вызвать скрипт немного - либо GET, либо POST, либо  HEAD. 
поэтому я считаю, что от браузера отличия несущественные.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.