Apache2 + Perlskript + Postgresql Datenbank

Alles, was Perl betrifft, kann hier besprochen werden.

Apache2 + Perlskript + Postgresql Datenbank

Postby mazeli » 07. June 2009 20:35

Hallo,

ich habe habe mir hier auf mein Ubuntu 9.04 den Apache Webserver per Synaptics installiert. Dazu auch noch die Pakete libapache-dbi-perl und libapache2-mod-perl2.

Jetzt habe ich ein simples Perl skript geschrieben welches über 2 Eingabefehler einen Benutzernamen und ein Passwort entgegen nimmt. Diese 2 Daten sollen dann in einer Postgresql datenbank geprüft werden und wenn das eingegebene Passwort mit dem in der Datenbank übereinstimmt, so sollen alle Informationen über diesen Benutzer ausgegeben werden.

Hier mal der Code vom Skript.

Code: Select all
#! /usr/bin/perl

use CGI ':standard';
use DBI;

my $query = new CGI;
my $data_source="postgres";
my $user_name="maze";
my $auth="auth";
my $table_name="Passwd";

print "Content-Type: Text/html\n\n";

print <<EOF

<HTML><HEAD><TITLE>Benutzerinformation</TITLE></HEAD>\n
<BODY>\n
<form action="user.pl?username" method="post" target="_blank">
<input type="text" name="username" value="" />
<input type="text" name="password" value="" />
<input type="submit" name="submit" value="Anfrage senden" />
</form>
</BODY>
</HTML>
EOF
;

my $uname = $query->param('username');
my $passwd = $query->param('password');

$dbh = DBI->connect("dbi:Pg:dbname=$data_source", "$user_name", "$auth") or die $DBI::errstr;

$sth = $dbh->prepare("SELECT * FROM ".$table_name." WHERE uname=? AND password=?;");

$sth->execute($uname, $passwd);

my $row = $sth->fetchrow_hashref();

print $row->{'uname'};
print $row->{'password'};
print $row->{'uid'};
print $row->{'gid'};
print $row->{'gname'};
print $row->{'home'};
print $row->{'shell'};

$dbh->disconnect();


Das Problem ist nun, dass einfach nichts passiert. Ich geb die daten ein und drücke auf den Button, es öffnet sich auch ein neues Fenster aber er zeigt mir keinerlei informationen an.
Ich habe auch mal ein paar "debug" prints reingesetzt und irgendwie scheint er nicht über das prepare hinauszukommen.

Ich habe dann mal ein testskript geschrieben welches keinen HTML Code beinhaltet (nur den code für die Datenbankabfrage) und per Konsole aufgerufen wird und siehe da, es funktioniert.
Ich bin momentan echt ratlos warum es per Konsole geht aber nicht wenn ich es per localhost/cgi-bin/user.pl im Firefox aufrufe.

Hättet ihr mir da einen tip was da nicht stimmen könnte? Ist vielleicht am Apache etwas nicht konfiguriert?

Gruß mazeli
mazeli
 
Posts: 1
Joined: 07. June 2009 20:26

Return to Perl

Who is online

Users browsing this forum: No registered users and 1 guest