Aquariophile: SEHR Un-Uebersichtliches OOP Script :((

Beitrag lesen

Hallo!

Also, ich habe ein Perlscript geschrieben.
Und ein Modul dazu.

Das ganze soll insgesamt ausgeben:

Ein Feld für Usernamen
Ein Feld fürs passwort

Frei generiert werden koennen grösse der Felder,
was vor den jeweiligen Feldern steht,
und alle möglichen Fehlermeldungen.

Das soll alles vom Script aus gehen.

Im modul stehen nur die ganzen IF/else

Meine Frage:
Der Aufruf für dieses Modul also zur Darstellung
von diesem Zeugs für den Login,
das hat EXTREM viele variablen die übergeben werden.

Im endeffekt weiss ich nach 2 Stunden schon nichtmehr,
an welcher stelle welche variable gehoert

Beispiel:
$oologin->login("login","user","pass","Du bist eingeloggt","Passwort falsch","Login Falsch","Dein Username","Dein persoenliches Passwort");

Das ist ja uuuur lange!

Meine Frage:
Wie muss ich das ganze gestalten,
dass ich ALLES vom Script aus steuern kann,
aber eben alle IF/ELSE und das ganze Programmtechnische im Modul ist.

Also wie gesagt,
so wie es jetzt ist, nur halt übersichtlicher damit die
variablen nicht alle in einer wurscht sind.

============================================================
Das Script:

#!/usr/bin/perl

use CGI;
use strict;
use oologin;

my $oologin = oologin->new();

print "Content-type: text/html\n\n";

print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Login-Seite</title></head><body>\n";

$oologin->login("login","user","pass","Du bist eingeloggt","Passwort falsch","Login Falsch","Dein Username","Dein persoenliches Passwort");

print "</body></html>";

============================================================
Das Modul:

package oologin;

use CGI;
use strict;
use warnings;
my $cgi = CGI->new();
sub new {
 my $class = shift;
 $class = ref($class) || $class;
 my $object = {};
 bless($object,$class);
 return($class);
}

sub login {
my $Objekt = shift;
my $button = shift;
my $user = shift;
my $pass = shift;
my $login_message = shift;
my $wrong_pass = shift;
my $wrong_login = shift;
my $usertext = shift;
my $passtext = shift;

if($cgi->param("button") eq $button)
{

if ($cgi->param("user") eq $user)
{
if($cgi->param("pass") eq $pass)
{
print "$login_message";
}

else
{
print "$wrong_pass";
}
}

else
{
print "$wrong_login";
}
}

else
{
print "<form action="oologin.pl" method="post">";
print "$usertext: <input type="text" size="40" name="user" value=""><br>";
print "$passtext: <input type="text" size="40" name="pass" value=""><br>";
print "<input type="submit" name="button" value="login"><br>";
}

}

1;

============================================================

DANKESCHÖN für alle Tipps
und vor allem Lösungsansaetze in richtung "Sinnvolleres" OOP.

Danke!
Aquariophile