Perl
Nico
0 Stefan Bach0 Rolf
0 Andreas Bierhals0 Dita
Hallo!
Ich habe eine Frage zu Perl:
Ich will eine Account-basierte Passwort-Abfrage machen.
Also dass Name und Passwort in einer dat-Datei
mit dem Trennungszeichen ; gespeiechert werden.
Z.B. Inhalt der Datei:
Nico;cool
Das Erste ist der Username, das zweite das dazugehörige Passwort und das in mehrfacher Ausführung, also:
Nico;cool
Hans;Franz
Nix;nix
Wie kann ich in einem Perl-Script es so anstellen, dass über ein Formular das Passwort und der Username verlangt werden, abgeschickt werden, an den Script übergeben werden und dann aus der Dat-Datei der Account gecheckt wird und das dazugehörige Passwort. Und Wenn beides richtig ist, dass dann eine positive Meldung kommt, in Form eines print-Befehls also, und wenn eines von beiden oder beide nicht stimmen, dass dann eine Fehlermeldung kommt?
Ich habe es schon mit folgendem versucht, aber keinen Erfolg gehabt:
open(DAT,"<dat.dat");
@dat = <DAT>;
close(DAT);
foreach $element (@dat)
{
($name, $pwd) = split(/;/, $element);
}
if(eingegebener Wert eq $name && eingegebener wert eq $pwd)
{
posititv;
}
else{
negativ
}
Wer kann mich verbessern oder mir sagen, wie es richtig ist?
Ich habe es schon mit folgendem versucht, aber keinen Erfolg gehabt:
open(DAT,"<dat.dat");
@dat = <DAT>;
close(DAT);foreach $element (@dat)
{
($name, $pwd) = split(/;/, $element);
}if(eingegebener Wert eq $name && eingegebener wert eq $pwd)
{
posititv;
}else{
negativ
}
Ob das System, das du verwendest um die Richtigkeit zu prüfen, einen Fehler hat kann ich dir auf die Schnelle nicht sagen. Wenn dies allerdings dein orginal Quellcode ist, fehlt nach negativ ein ";". Dies könnte schon der ganze Fehler sein.
Gruß
Stefan
Ich habe es schon mit folgendem versucht, aber keinen Erfolg gehabt:
open(DAT,"<dat.dat");
... und
der Pfeil im 2. Argument der open - Funktion muss andersherum zeigen, wenn die Datei geschrieben werden soll:
open(DAT,">dat.dat");
Viele Grüße
Rolf
Ich habe es schon mit folgendem versucht, aber keinen Erfolg gehabt:
open(DAT,"<dat.dat");
@dat = <DAT>;
close(DAT);foreach $element (@dat)
{
($name, $pwd) = split(/;/, $element);
}
## ^^^ Hier ist die for-Schleife zu Ende!! ##
if(eingegebener Wert eq $name && eingegebener wert eq $pwd)
{
posititv;
}
Wer kann mich verbessern oder mir sagen, wie es richtig ist?
Hallo Stefan!
In Deinem Skript-Auszug liest Du in einer for-Schleife
wiederholt Daten aus @dat in $name und $pwd.
Jedoch werden $name und $pwd nicht weiterverwertet sondern
im naechsten Schleifendurchlauf einfach
vom naechsten Datensatz ueberschrieben.
Mit der if-Abfrage, die erst hinter der Schleife erfolgt,
wird also hoechstens der letzte Datensatz abgefragt.
Mit anderen Worten: Die if-Abfrage gehoert IN die
for-Schleife hinein.
Gruesse,
Andreas Bierhals
Hallo!
Ich habe eine Frage zu Perl:
Ich will eine Account-basierte Passwort-Abfrage machen.
Also dass Name und Passwort in einer dat-Datei
mit dem Trennungszeichen ; gespeiechert werden.Z.B. Inhalt der Datei:
Nico;coolDas Erste ist der Username, das zweite das dazugehörige Passwort und das in mehrfacher Ausführung, also:
Nico;cool
Hans;Franz
Nix;nixWie kann ich in einem Perl-Script es so anstellen, dass über ein Formular das Passwort und der Username verlangt werden, abgeschickt werden, an den Script übergeben werden und dann aus der Dat-Datei der Account gecheckt wird und das dazugehörige Passwort. Und Wenn beides richtig ist, dass dann eine positive Meldung kommt, in Form eines print-Befehls also, und wenn eines von beiden oder beide nicht stimmen, dass dann eine Fehlermeldung kommt?
Ich habe es schon mit folgendem versucht, aber keinen Erfolg gehabt:
open(DAT,"<dat.dat");
@dat = <DAT>;
close(DAT);foreach $element (@dat)
{
($name, $pwd) = split(/;/, $element);
}if(eingegebener Wert eq $name && eingegebener wert eq $pwd)
{
posititv;
}else{
negativ
}Wer kann mich verbessern oder mir sagen, wie es richtig ist?