Lars: Nach Variablenauslagerung Fehler bei Skriptausführung

Beitrag lesen

Servus allerseits!

Ich bastel grad an einer kleinen Intranetseite und dort an einer Loginmaske. Nun habe ich einige Variablen in eine Datei ausgelagert, da ich auf diese auch in anderen Skripten zugreifen muss. Das Skript kriegt von einem HTML-Formular via POST-Methode die Parameter nummer und passwd übergeben. Hier der Programmcode:

------login.pl------
#! /usr/bin/perl
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
{package Config; do 'config.inc';}
$db = DBI->connect("dbi:mysql:$Config::dbname;host=$Config::dbhost;port=$Config::dbport", $Config::dbuser, $Config::dbpasswd) or die($Config::dberror);

my $cgi = new CGI;
my @params = $cgi->param();
my $nummer=$cgi->param('nummer');
my $passwd=$cgi->param('passwd');

$sql = "SELECT passwd FROM Bewohner WHERE id ="".$nummer.""  LIMIT 0, 30 ";
$sth = $db->prepare($sql);
$sth->execute();
$correct = $sth->fetchrow_array();
$sth->finish();

print $cgi->header('text/html');
print $cgi->start_html('Login-Seite');
if ($nummer eq "" or $passwd eq "")
{
        print "Sie sollten schon was eingeben!<br>";
}

elsif ($passwd eq $correct)
{
        print "Willkommen Nummer:  $nummer!<br>";
}
else
{
        print "Das war wohl nix!";
}
print "</body></html>";
$db->disconnect();
-------------------

-----config.inc------
our $title="Loginseite";
our $author="test";
our $dbhost="localhost";
our $dbport="3306";
usw...
---------------------

Nun zum Problem: Starte ich auf der Shell einfach "perl login.pl" läuft es sauber ohne Fehlermeldung durch. Lasse ich das ganze aber so ablaufen wie gedacht, sprich Eingabe im HTML-Formular und Aufruf des Skripts mit POST-Methode, bekomme ich folgende Fehlermeldung:

Software error: at /home/lars/public_html/perl/login.pl line 6.

Versuchsweise habe ich die ausgelagerten Variablen in die login.pl aufgenommen und die Referenzen zu ihnen umgeschrieben. Erstaunlicherweise lief nun alles glatt.

Vielleicht hat ja jemand eine Idee oder einen Tipp, wie ich das Skript sauber zum Laufen bekommen kann.

Vielen Dank im Voraus!

Schöne Grüße,
Lars