Thomas Haxmer: PERL ---» Passwort/Login auslesen ok, aber noch ein anderes Problem

Hi!

Ich habe ein Problem!
Ich will ein Passwort und Login aus einer Datei (Name= database) auslesen.Das geht auch so halbwegs. Allerdings ist das Problem, dass ich es nicht überprüfen kann  bzw. ich jedesmal die falsche Ausgabe bekomme: Der Skript:

########  START ########

sub login{

$rein = $FORM{'logon'};

open (FILE, 'database');
@database = <FILE>;
close (FILE);

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

foreach $line (@database) {
  @dataline = split(/|/,$line);

if ($rein =~ /$dataline[0]/)  

{

if ($FORM{'logon'} eq $dataline[0] && $FORM{'passwort'} eq $dataline[9]){

print "OK";

}

else{

print "Falsches LOGIN\n<br>";
  print "$dataline[0]\n<br>";
  print "$dataline[9]";

}
}

}

exit;

######## ENDE ##########

In der database steht: test| | | | | | |test

Der Skript ließt zwar das Login und Passwort richtig aus ich kann aber nicht "winloggen" ---> OK. Ausser bei der letzten Zeile! Wenn ich das Passwort der Letzten Zeile eingebe gibts kein Problem!? Alle vorderen geht nicht. ließt zwar richtig aus, aber . . .

Bitte um HILFE!

Danke schon jetzt!!

MfG Thomas

  1. Hallo auch!

    @dataline = split(/|/,$line);

    [...]

    Der Skript ließt zwar das Login und Passwort richtig aus ich kann aber nicht "winloggen" ---> OK. Ausser bei der letzten Zeile! Wenn ich das Passwort der Letzten Zeile eingebe gibts kein Problem!? Alle vorderen geht nicht. ließt zwar richtig aus, aber . . .

    Dann hast Du wohl die Returns übersehen! Also für jede einzelne Zeile (bis auf die letzte) enthält das Passwort ($dataline[9]) zusätlich das Return.
    Diese Return solltest Du vorm split entfernen:
        chop($line);
        @dataline = split(/|/,$line);

    Viel Erfolg,
       Jörk

  2. Hallo auch!

    @dataline = split(/|/,$line);

    [...]

    Der Skript ließt zwar das Login und Passwort richtig aus ich kann aber nicht "winloggen" ---> OK. Ausser bei der letzten Zeile! Wenn ich das Passwort der Letzten Zeile eingebe gibts kein Problem!? Alle vorderen geht nicht. ließt zwar richtig aus, aber . . .

    Dann hast Du wohl die Returns übersehen! Also für jede einzelne Zeile (bis auf die letzte) enthält das Passwort ($dataline[9]) zusätlich das Return.
    Diese Return solltest Du vorm split entfernen:
        chop($line);
        @dataline = split(/|/,$line);

    Viel Erfolg,
       Jörk