Habs geändert, funktioniert aber trotzdem nicht :(
Kleine Bitte: Könntet ihr den Teil nochmal genauer erklären (Zeilenweise)?! Was ist eigentlich PWL und BKP? Danke.
_________________________________________
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<([^>]|\n)*>//g;
$FORM{$name} = $value;
}
&candc;
sub austausch()
{
open(PWL, "$passwd_pfad") || &error("Kann Passwort-Datei nicht öffnen: $!");
@pwl = <PWL>;
close(PWL) || &error("Kann Passwort-Datei nicht schließen: $!");
open(BKP,">$passwdbackup") || &error("Kann Sicherungsdatei nicht öffnen: $!");
open(PWL,">$passwd_pfad") || &error("Kann PWL-DAT nicht öffnen: $!");
foreach $line (@pwl)
{
print BKP $line;
($user, $pw) = split(/:/,$line);
chomp($pw);
if($user eq $name && $pw eq $cpassold)
{
print PWL "$name:$cpassnew\n";
}
else
{
print PWL $line;
}
[..]
sub candc()
{
$vorhanden = "nein";
$cpassold = crypt($passold, "YL");
if($pass1 ne $pass2)
{
&error("Die beiden neuen Passwörter stimmen nicht überein, bitte korrigieren Sie");
}
else
{
open(PWL, "$passwd_pfad") || &error("Kann Passwort-Datei nicht öffnen: $!");
@pwlist = <PWL>;
close(PWL);
foreach $pl (@pwlist)
{
($user, $pw) = split(/:/, $pl);
chomp($pw);
if(($user eq $name) && ($pw eq $cpassold))
{
$cpassnew = crypt($pass1, "YL");
$vorhanden = "ja";
}
}
if($vorhanden eq "ja")
{
&austausch;
}
else
{
&error("Benutzername und Kennwort passen nicht zueinander, bitte beide Eingaben überprüfen!");
(Dieser Beitrag wurde von Hanü am 6. Dez 2002, 01:35 geändert)