А вот такой код по синтаксису вроде все правильно
код модуля LogConnect.pm
| Код |
package LogConnect; use DBI; use strict; sub connect { my ($log_dbname, $log_dbhost); my $log_dsn = "DBI:mysql:database=$log_dbname;host=$log_dbhost"; my $log_dbh = DBI->connect($log_dsn, "root", ""); if (!defined($log_dbh)) { print "\nerror: Проблемка с подключением к базе данных MySql:\n"; print DBI ->errstr; print "-" x 25 . "\n"; return; } return $log_dbh; } 1;
|
код скрипта этого модуля он должен заносить в базу значения
| Код | #!/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;
|
но у меня вот такая ошибка создал базу visitors в MySQL ОШИБКИ
| Цитата | Use of uninitialized value $log_dbname in concatenation (.) or string at LogConnect.pm line 6. Use of uninitialized value $log_dbhost in concatenation (.) or string at LogConnect.pm line 6. DBI connect('database=;host=','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES) at LogConnect.pm line 7 Use of uninitialized value $log_dbhost in concatenation (.) or string at C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 12. Use of uninitialized value $log_dbhost in concatenation (.) or string at C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 14.
|
|