Most Web-based Perl applications use more than five
.cgi Perl scripts. Instead of typing all the DBI information in the script, I created a function you can use that gets the information from a
.dat file on the server, and parses it for the DBI.
It's much more secure, since you're not hand-typing DB login information on the script.
Here is the package script:
################ connectsql.pl #####################################################3
#!c:/perl/bin/perl.exe
package connectsql;
use Exporter;
our @ISA = qw (Exporter);
our @EXPORT = qw (connectsql $config{'dbUser'} $config{'dbServer'} $config{'dbPass'} $config
{'datasource'});
sub connectsql
{
use DBI;
our $a;
our $b;
our $c;
our $d;
our %config;
open FILE, "config.dat" or die "Can not open file.txt $!\n";
while (<FILE>) {
chomp;
($a,$b,$c,$d) = split(/:/);
}
$config{'dbServer'} = $b;
$config{'dbUser'} = $a;
$config{'dbPass'} = $d;
$config{'dbName'} = $c;
$config{'dataSource'} = "DBI:mysql:$config{'dbName'}:$config{'dbServer'}";
our $dbh = DBI->connect($config{'dataSource'},$config{'dbUser'},$config{'dbPass'}) || die"error";
}
Now, all you need to do is add this to your code before the DBI connection:
....
...
....
require "connectsql.pl";
&connectsql::connectsql();
my $dbh = DBI->connect($connectsql::config{'dataSource'},$connectsql::config
{'dbUser'},$connectsql::config{'dbPass'}) || die"error";
....
....
....
The
config.dat file is easy:
################config.dat###############
username:host:databasename:password: