Код скрипта Code: #!/usr/bin/perl -w # vislog.cgi use strict; use POSIX; use Socket; use LogConnect; my $dbh = LogConnect->connect; my $ip = $ENV{'REMOTE_ADDR'}; my $browser = $ENV{'HTTP_USER_AGENT'}; my $referer = $ENV{'HTTP_REFERER'}; my $here = $ENV{'REQUEST_URI'}; my @digits = split(/\./, $ip); my $address = pack("C4", @digits); my $host = gethostaddr($address, AF_INET); my $time = strtime("%Y-%m-%d %H:%M:%S",gmtime); my $query = qq(insert info access_log values ('$ip', '$host', '$browser', '$referer', '$here', '$time')); my $sth = $dbh ->prepare($query); $sth -> execute; $dbh -> disconnect; код модуля Code: package LogConnect; use DBI; use strict; sub connect { my $log_dbname = "visitors"; my $log_dbhost = "localhost"; my $port = "3306"; my $log_dsn = "DBI:mysql:database=$log_dbname;host=$log_dbhost:$port"; my $log_dbh = DBI->connect($log_dsn, "root", "1234"); if (!defined($log_dbh)) { print "\nerror: Проблемка с подключением к базе данных MySql:\n"; print DBI ->errstr; print "-" x 25 . "\n"; return; } return $log_dbh; } 1; ОШИБКИ помогите 2й день уже вожусь... ...
Написано же что не так О_о Code: Use of uninitialized value $ip ... C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 12. http://www.codenet.ru/webmast/perl/ipperl.php Code: Access denied for user 'root'@'localhost' И тут всё понятно. Пароль не тот, а может юзвер. А может и то и другое. Если пасс вообще не стоит(в бд), то просто написать '' (пустое значение). Пс. не похоже, что было потрачено два дня то...
код из книги по которой учусь сgi http://www.perlcgi-book.com/listings/listing_3-10.txt в том то и дело пробовал без пароля и с паролем без результатно уже как только не переделывал почему пароль не подходит не ясно тестирую на денвере
TikTik, у вас логика скрипта нарушена - при возникновении исключительной ситуации в модуле LogConnect.pm (невозможно соединиться с мускулем) скрипт продолжит работу вместо того, чтобы завершиться